webview和js之间的交互
参考地址:http://www.runoob.com/w3cnote/android-tutorial-webview.html
http://www.cnblogs.com/zgz345/p/3768174.html
http://www.cnblogs.com/renhui/p/5893099.html
1、js调用andriod开放的方法
在开放的方法前面加上 @JavascriptInterface
首先,我们定义一个类,用于将数据暴露出来,JS通过该类暴露的方法(Public)来调用Android!
接着,我们在WebView所在页面Activity,使用下述代码:
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(object,"name");
然后js或者html中调用name.xxx调用对象里的暴露的方法:
比如:
< input type="button" value="Toast提示" onclick="name.showToast('呵呵');"/>
另外,setJavaScriptEnabled是在Android 4.4以前的系统才有效!!!
2、andriod调用js方法
webView.loadUrl("javascript:js方法名('" + 参数 + "')");
不知道为什么js方法放在后面就不能调用,放在前面就解决了,有知道的吗?欢迎交流
出现问题:Uncaught ReferenceError: functionName is not defined,网上说是:网页的js代码没有加载,就调用了js方法。解决方法是在网页加载完成之后调用js方法或者限制用户在页面加载完成之前不允许调用JS的事件