我使用Webview将我的网站移植到Android。在我的Android应用中,有一个指示器显示购物车中的商品数量。在Javascript中,我调用一个名为refreshShoppingBadge
的函数,它请求一个AJAX请求来更新数字。所以我为Webview编写Javascript接口,如下所示:
@JavascriptInterface
public void refreshShoppingBadge(final String pUrl) {
if (pUrl == null) {
return;
}
final DefaultHttpClient request = new DefaultHttpClient();
try {
final HttpResponse response = request.execute(new HttpGet(
this.rootContext + pUrl));
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
Utils.changeTabIndicator(this.tabCartIndex,
String.format(this.tabCartContent, out.toString()));
} else {
Utils.alertNetworkProblem(this.context);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
Log.e("Shopping", e.getMessage());
} catch (IOException e) {
e.printStackTrace();
Log.e("Shopping", e.getMessage());
}
}
但是,结果始终为0,因为HttpClient使用新会话发送请求,因此购物车中没有任何内容。
我可以“仅从webview获取结果”,还是以某种方式获取其会话请求?