我正在使用 android 的 WebView.loadUrl()
方法从 SD 卡加载 HTML 文件。
该 html 文件包含 JavaScript 函数,例如 someFunction()
。
由于某种原因我仍然不明白,调用 mWebView.loadUrl("javascript:someFunction()");
不会“触发”HTML 文件中的函数。 (我在 html 加载完成后调用它...)
当我从远程服务器加载到Web View 相同的HTML文件,并从webView启动相同的JavaScript调用时 - 它确实有效! 所以我知道问题出在我从本地文件加载它的事实,而不是我的 html 文件中的错误。
我知道需要启用 JavaScript:
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
这没有帮助!
我还注意到 WebViewClient.onLoadResource()
回调也存在同样的问题。当文件位于本地而不是来自远程服务器(或者准确地说,从 HTTP Web 服务器的 uri 访问)时,我似乎对 javascript 存在一般问题。
有什么建议说明为什么会发生这种情况吗?我需要做什么才能让它发挥作用?
TIA
最佳答案
看来这是我的错误。即使 html 文件位于 SD 上,java 脚本函数也能正常工作。由于某些其他原因,我使用的特定功能根本无法按预期工作。
关于javascript - 为什么 WebView.loadUrl ("javascript: someFunction()")不适用于本地 html 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581335/