鍍金池/ 問答/Android  HTML/ js怎么給安卓傳遞參數(shù)?

js怎么給安卓傳遞參數(shù)?

clipboard.png

clipboard.png
我需要點(diǎn)擊某個(gè)按鈕給安卓傳遞一個(gè)參數(shù),安卓同事告訴我用圖一這種方法就可以,但結(jié)果如圖二所示報(bào)錯(cuò),請(qǐng)問怎么解決。

回答
編輯回答
命于你

Js 調(diào)用 Android 側(cè)的 Java 代碼需要 Android 側(cè)編寫通信接口:

public class YourJavaScriptInterface {
    @JavascriptInterface        //使用該注解表明該方法可以被js調(diào)用到
    public void command(string: String) {
        
    }
}

將該通信接口綁定到 WebView 上:

webView.addJavascriptInterface(new YourJavaScriptInterface(), xxx);  //第二個(gè)參數(shù)為暴露給 js 的名字

WebView 要允許 js 的執(zhí)行:

webView.getSettings().setJavaScriptEnabled(true);

然后 js 側(cè)就可以用以下方式調(diào)用到 Android 側(cè)的方法了:

window.xxx.command('hello');

基本的 Android 與 Js 交互可以參考鄙人寫的一篇博客:Android 與 Javascript 的交互

2018年3月17日 18:33
編輯回答
避風(fēng)港

window原生都沒有wvc這個(gè)對(duì)象吧 ,更別說command這個(gè)方法了, 跟安卓協(xié)同開發(fā)的話需要相互制定調(diào)用的方法名,以及相關(guān)傳遞的參數(shù)

2017年2月23日 06:29
編輯回答
巫婆

你可以先自定義一個(gè)JavaScriptInterface

inner class JavaScriptInterface {

    @JavascriptInterface
    fun hello(string: String) {
        print("Hello Word")
    }
}

然后使用WebView的addJavascriptInterface方法

addJavascriptInterface(JavaScriptInterface(), "interface")

最后在JavaScript里,可以直接

window.interface.hello();
2017年1月18日 01:43
編輯回答
不舍棄

你的同事很可能已經(jīng)在 Android 內(nèi)用 JavascriptInterface 實(shí)現(xiàn)了 wvc 這個(gè)對(duì)象,但這個(gè)對(duì)象只能在安卓上你們的應(yīng)用內(nèi)有效,建議你去好好溝通下

2017年8月19日 18:37
編輯回答
厭惡我

用dsbrige與安卓交互。
http://www.jianshu.com/p/3946...
通過cdn或者npm下載dsbrige,需要用的地方var dsBrige=require('dsbrige');
dsBrige.call('安卓提供的方法',{
msg:'你傳個(gè)安卓的參數(shù)'})

2018年7月7日 09:37