webview使用的是Html,通過js可以直接調用
注意Html中將預埋一個是參數、一個是方法(方法可能有多個,根據具體使用場景而定),至於這兩個參數在js中具體意義,請參考js相關內容,這個在android源代碼中將會用到這兩個參數
先看看android中怎么寫:
1、定義一個類
這里面包含了原生使用的方法(這個方法js中也有一個,這是一個聯通接口)
public class JavaScriptInterface { Context mContext; JavaScriptInterface(Context c) { mContext = c; }
@android.webkit.JavascriptInterface public void chatWithExpert(String expertId,String imId ,String name,String head){ //js將會觸發這個方法,執行原生代碼中的方法
} } }
2、實現,使用這個接口
使用之前我們先進行實例化
final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this);
webView.addJavascriptInterface(myJavaScriptInterface, "androidObj");
注意傳入那個加大號參數,js中對其進行了預先的定義,這里要和html達成一致,相當於一個連接點。
如果html中的js沒有問題的話,這里就可以觸發
JavaScriptInterface中的
chatWithExpert方法了