大佬教程收集整理的这篇文章主要介绍了android webview javascript无法使用loadDataWithBaseUrl,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
webview.loadDataWithBaseURL("",htmlcontent,"text/html",null,"");
一个方法从StringBuilder返回htmlContent,它填充html数据.
我启用了javascript并设置了webChromeClient,如下所示
webview.getSetTings().setJavaScriptEnabled(true); webview.setWebChromeClient(new WebChromeClient()); webview.addJavascripTinterface(new JSClass(),"Android");
我的javascript界面:
class JSClass { public void getHTMLContent(String html) { Log.i(Global.TAG,"HTMLContentReceived: "+html); } }
和我在html页面的javascript:
<script type="text/javascript"> var ele = document.getElementsByClassName('test'); for(var i=0;i<ele.length;i++){ ele[i].onclick = function(){ window.Android.getHTMLContent(this.innerHTML); } } </script>
但不知何故,javascript没有返回任何值.
它适用于loadData(url),其中url是assets文件夹中的简单网页
请帮忙
提前致谢
Javascripts不会在Java代码中抛出任何异常.请记住,JS不像Java代码那样类型安全/严格…我的做法是在敏感的Javascript调用之间放置日志,以查看该行是否通过并检查值.由于您没有提供HTML,我将设置WebChomeClient并覆盖onConsoleMessage:
webview.setWebChromeClient(new MyChromeClient()); private class MyChromeClient extends WebChromeClient { @Override public Boolean onConsolemessage(Consolemessage consolemessagE) { String message = consolemessage.message() + " -- line " + consolemessage.linenumber(); switch (consolemessage.messageLevel()) { case ERROR: logErrormessage(messagE); break; default: logInfomessage(messagE); break; } return true; } private void logInfomessage(String messagE) { Log.i("JSTag",messagE); } private void logErrormessage(String messagE) { Log.e("JSTag",messagE); } }
然后从您的JavaScript中调用例如:console.log(‘check my value:'(ele!= null)).有关此here的更多信息.
以上是大佬教程为你收集整理的android webview javascript无法使用loadDataWithBaseUrl全部内容,希望文章能够帮你解决android webview javascript无法使用loadDataWithBaseUrl所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。