【发布时间】:2016-04-08 01:25:58
【问题描述】:
基本上,我正在开发一个 Android 应用程序,用户可以在其中访问页面的 HTML 内容并选择下一步如何处理它是否写入文件系统、通过 FTP 上传等。用户看不到HTML,但它会存储它以供以后查看。
我尝试添加一个 JavaScript 接口,然后将其添加到 onPageFinished 事件中,它只是不想交出 HTML,这就是我所做的:
所以对于我的 onPageFinished 事件:
Webview wv = (WebView) findViewById(R.id.webbrowser);
wv.addJavascriptInterface(new JSEngine() , "JSEngine");
public void onPageFinished(WebView wv , String html){
//code to execute
wv.loadUrl("javascript: window.JSEngine.processHTML(document.body.innerHTML)");
}
由于某些原因无法共享在 processHTML 中执行的代码,但我可以告诉你 html 变量是空的。
然后是我的javascript界面:
Class JSEngine{
@JavascriptInterface
public void processHTML(String html){
//code to execute
//html variable is null
}
}
有什么可以解决我的问题吗?我的所有权限都已设置,我的课程运行良好,直到 Webview 移交 html。
【问题讨论】:
-
"javascript: window.JSEngine.processHTML(document.body.innerHTML)"有效吗? -
是的,当我在常规网络浏览器上测试它时它可以工作
-
如果您遗漏了什么,请点击这里 -- stackoverflow.com/questions/11287820/…
-
我什么都有,只是没有返回 HTML,因为 WebView 缺少功能,我正在寻找其他替代方案
标签: javascript java android html webview