- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开发了一个应用程序,我可以在其中使用 googleapibook 搜索来获取书籍。我有一个 isbn 号。现在我想让我的用户一页一页地阅读那本书。但是我没有找到任何在 java 或 android 中阅读书籍的方法或解决方案。
这是我的代码。
package com.project.bookhunt;
import java.net.URL;
import java.util.ArrayList;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.json.JSONArray;
import org.json.JSONObject;
import android.content.Context;
import android.widget.Toast;
public class BookSearchParser
{
Context m_context;
static ArrayList<Book_Item> books= new ArrayList<Book_Item>();
String searchResult;
BookSearchParser(Context c,URL url)
{
try
{
m_context=c;
HttpClient client = new HttpClient();
GetMethod getMethod = new GetMethod(url.toString());
int statusCode = client.executeMethod(getMethod);
System.out.println("status Code"+statusCode);
System.out.println(getMethod.getResponseBodyAsString());
searchResult=getMethod.getResponseBodyAsString();
parseJSON(searchResult);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static ArrayList<Book_Item> getBooks()
{
return books;
}
private void parseJSON(String object)
{
try
{
books=new ArrayList<Book_Item>();
JSONObject jSonObject = new JSONObject(object);
if(jSonObject.getInt("totalItems")>0)
{
JSONArray jSonObjectArray = jSonObject.getJSONArray("items");
for(int count = 0; count < jSonObjectArray.length();count++)
{
Book_Item item=new Book_Item();
JSONObject jsonItem = (JSONObject) jSonObjectArray.get(count);
if(jsonItem.has(("id")))
{
item.setId(jsonItem.getString("id"));
}
// else
// {
// item.setId("No Id");
// }
if(jsonItem.has("selfLink"))
{
item.setSelfLink(jsonItem.getString("selfLink"));
}
// else
// {
// item.setSelfLink("No Link Avilable");
// }
if(jsonItem.has("volumeInfo"))
{
JSONObject volumeInfo = (JSONObject)jsonItem.get("volumeInfo");
if(volumeInfo.has("title"))
{
item.setTitle(volumeInfo.getString("title"));
}
// else
// {
// item.setTitle("No Title");
// }
if(volumeInfo.has("subtitle"))
{
item.setSubTitle(volumeInfo.getString("subtitle"));
}
// else
// {
// item.setSubTitle("No SubTitle Avilable");
// }
//
if(volumeInfo.has("authors"))
{
JSONArray Authors = volumeInfo.getJSONArray("authors");
for(int authorCount=0;authorCount<Authors.length();authorCount++)
{
item.setAuthor(Authors.getString(authorCount));
}
}
if(volumeInfo.has("description"))
{
item.setDiscription(volumeInfo.getString("description"));
}
// else
// {
// item.setDiscription("No Description Avilable");
// }
if(volumeInfo.has("averageRating"))
{
item.setRating(volumeInfo.getString("averageRating"));
}
if(volumeInfo.has("industryIdentifiers"))
{
JSONArray isbnArray = volumeInfo.getJSONArray("industryIdentifiers");
for(int isbnCount=0;isbnCount<isbnArray.length();isbnCount++)
{
JSONObject isbn=(JSONObject)isbnArray.get(isbnCount);
if(isbn.getString(("type")).equals("ISBN_10"))
{
item.setIsbn10(isbn.getString("identifier"));
}
if(isbn.getString(("type")).equals("ISBN_13"))
{
item.setIsbn13(isbn.getString("identifier"));
}
}
}
if(volumeInfo.has("categories"))
{
JSONArray categoriesArray = volumeInfo.getJSONArray("categories");
for(int j=0;j<categoriesArray.length();j++)
{
item.setCategory(categoriesArray.getString(j));
}
}
// else
// {
// item.setCategory("No category");
// }
//
if(volumeInfo.has("imageLinks"))
{
JSONObject ImageLinks = volumeInfo.getJSONObject("imageLinks");
if(ImageLinks.has("smallThumbnail"))
{
item.setSmallThumb(ImageLinks.getString("smallThumbnail"));
}
if(ImageLinks.has("thumbnail"))
{
item.setThumb(ImageLinks.getString("thumbnail"));
}
// else
// {
// //item.setSmallThumb("No Thumbnail");
// }
//
if(ImageLinks.has("previewLink"))
{
item.setPreviewLink((ImageLinks.getString("previewLink")));
}
// else
// {
// item.setPreviewLink("No Thumbnail");
// }
}
// else
// {
// //item.setSmallThumb("No Thumbnail");
// item.setPreviewLink("No Preview");
// }
}
books.add(item);//add one volume to array_list
}
}
else
{
Toast.makeText(m_context, "0 Record Found..",Toast.LENGTH_SHORT).show();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
最佳答案
这里有一个可能的解决方案。
当您使用 Book Search API 时,您可以获得图书的 ISBN
然后,为了让您的用户阅读这本书,也许:
将 WebView 与 Google Docs Embedded Viewer API + 您的 ISBN 结合使用,您将能够在该 WebView 中加载图书预览
例如,具有以下代码的 WebView:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Books Embedded Viewer API Example</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("books", "0");
function initialize() {
var viewer = new google.books.DefaultViewer(document.getElementById('viewerCanvas'));
viewer.load('**ISBN:0738531367**');
}
google.setOnLoadCallback(initialize);
</script>
</head>
<body>
<div id="viewerCanvas" style="width: 600px; height: 500px"></div>
</body>
</html>
这是我为您提供的解决方案,技巧位于:google.books.DefaultViewer(document.getElementById('viewerCanvas')); viewer.load('ISBN:0738531367');
希望对你有帮助
为了更好地理解这一点,请访问 http://code.google.com/apis/books/docs/viewer/developers_guide.html在 Embedded Viewer API 的“Hello, World”
当您使用该 API 时,您可以获得如下信息:http://code.google.com/apis/books/docs/viewer/examples/book-simple.html
关于java - 在 Android 中阅读谷歌图书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057859/
前几天收到了由戴路遥编著的《互联网科普书籍-站长之家》,打开书一看把我惊呆了,大家可以先看一下图书封面和目录。 如图所示,如何用百度,如何用淘宝,如何注册域名、如何用网站空间,甚至是如何用QQ
我正在尝试使用 Google 图书 API,但对于任何请求,我都会收到 totalItems = 0。 我尝试在 Chrome 中发送请求,例如: https://www.googleapis.com
我正在通过检索 JSON 数据将一些 Google 图书信息发送到我的数据库。我的代码如下 $.ajax({ type: 'POST', url: 'addIsbnScript.p
有没有办法以编程方式检索用户已购买的 Kindle 电子书列表? 我已经在 SO 上广泛搜索了答案,但是我能找到的几个相关问题都是古老的。亚马逊文档也不是很有帮助,因为据我所知,亚马逊联盟计划 API
我无法在此 Json 响应中提取书籍缩略图的 URL: https://www.googleapis.com/books/v1/volumes?q=java&maxResults=10 当我将链接硬编
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭12 年前。 Improve th
这是我的点击信息: Button searchButton = (Button) findViewById(R.id.search_button); searchButton.
如何在 Swift 中使用 JSON 从谷歌的书中获取作者?此代码有效,但我对作者有疑问。 这是一个 JSON 的例子: { "kind": "books#volume", "id": "17B
本文节选自清华大学出版社出版的图书《数据资产管理核心技术与应用》,作者为张永清等著。 从Spark 执行计划中获取数据血缘 因为数据处理任务会涉及到数据的转换和处理,所以从数据任务中解析血缘也是获
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
借助 Google Book Search API V1,我可以搜索图书。 现在,每当用户尝试使用不同的关键字进行搜索时,我只想搜索特定类别的书籍。 我无法在 Book API V1 中设置类别 ht
我想弄清楚如何使用 Google Books API 按 ISBN 搜索图书。我需要编写一个程序来搜索 ISBN,然后打印出标题、作者和版本。我尝试使用 List volumesList = book
我是一名优秀的程序员,十分优秀!