我需要点击某个按钮给安卓传递一个参数,安卓同事告诉我用图一这种方法就可以,但结果如图二所示报错,请问怎么解决。
你可以先自定义一个JavaScriptInterface
inner class JavaScriptInterface {
@JavascriptInterface
fun hello(string: String) {
print("Hello Word")
}
}
然后使用WebView的addJavascriptInterface方法
addJavascriptInterface(JavaScriptInterface(), "interface")
最后在JavaScript里,可以直接
window.interface.hello();
用dsbrige与安卓交互。
http://www.jianshu.com/p/3946...
通过cdn或者npm下载dsbrige,需要用的地方var dsBrige=require('dsbrige');
dsBrige.call('安卓提供的方法',{
msg:'你传个安卓的参数'})
Js 调用 Android 侧的 Java 代码需要 Android 侧编写通信接口:
public class YourJavaScriptInterface {
@JavascriptInterface //使用该注解表明该方法可以被js调用到
public void command(string: String) {
}
}
将该通信接口绑定到 WebView 上:
webView.addJavascriptInterface(new YourJavaScriptInterface(), xxx); //第二个参数为暴露给 js 的名字
WebView 要允许 js 的执行:
webView.getSettings().setJavaScriptEnabled(true);
然后 js 侧就可以用以下方式调用到 Android 侧的方法了:
window.xxx.command('hello');
基本的 Android 与 Js 交互可以参考鄙人写的一篇博客:Android 与 Javascript 的交互
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
你的同事很可能已经在 Android 内用 JavascriptInterface 实现了
wvc
这个对象,但这个对象只能在安卓上你们的应用内有效,建议你去好好沟通下