我想从Android中的Javascript获取返回值.我可以用iPhone做到这一点,但我不能用Android.我使用了loadUrl,但它返回的是void而不是object.有谁能够帮我?谢谢.
我编写了一段Java代码,旨在通过android WebView网关从Javascript调用Java代码.
webView = (WebView) findViewById(R.id.captchaView);
WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);
webView.loadUrl("https://google.com/");
webView.setWebViewClient(BrowserHandler);
webView.addJavascriptInterface(new IJavascriptHandler(), "cpjs");
WebViewClient BrowserHandler = new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.cpjs.onPageLoaded(document.body.innerHTML);void(0);");
}
};
final class IJavascriptHandler {
IJavascriptHandler() {
}
public void onPageLoaded(String html) {
// this is called from JS
Toast t = Toast.makeText(getApplicationContext(), "Yes", 2000);
t.show();
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码检查网页加载,一旦页面加载完成,它将调用从Java公开的javascript函数,以便它可以从页面中携带我需要的东西.
这没有按预期工作它只是每隔几秒刷新页面.我不确定这里有什么问题?
我想使用HTML和javascript构建一个基于脱机浏览器的应用程序,以在Android平板电脑上收集调查数据。该应用程序将包含一些静态页面,这些页面具有供用户输入数据的表单,然后可以使用Web Storage或IndexedDB将其存储在本地。但是,我也想构建一个小的本机Android应用程序,它将获取这些数据并将其传输到其他设备。这有可能吗,如果可以的话,我将如何处理呢?
具体来说,我想了解本机应用程序是否以及如何访问浏览器的数据存储(我可以管理其余部分)。我更喜欢使用Android浏览器,但是可以使用其他任何浏览器,如果这样可以简化操作。我发现这篇博客文章暗示可能,但我希望您能得到一些有关Android浏览器存储数据的位置以及其他应用程序可以多么轻松地访问数据的指示。