android java 调用js_android WebApp 集成方式怎么使用java调用js
WebAPP集成,本地打包,有兩種方式java js通信
1.DCloud插件模式,參考SDK DEMO的H5Plugin,
Java:繼承StandardFeature寫接口。
public class DBControlPlugin extends StandardFeature
{
public void PluginTestFunction(IWebview pWebview, JSONArray array)
{
// 原生代碼中獲取JS層傳遞的參數,
// 參數的獲取順序與JS層傳遞的順序一致
Log.d("DBControlPlugin", "PluginTestFunction");
String CallBackID = array.optString(0);
JSONArray newArray = new JSONArray();
newArray.put(array.optString(1));
newArray.put(array.optString(2));
newArray.put(array.optString(3));
newArray.put(array.optString(4));
// 調用方法將原生代碼的執行結果返回給js層并觸發相應的JS層回調函數
JSUtil.execCallback(pWebview, CallBackID, newArray, JSUtil.OK, false);
}
}
DCloud配置dcloud_properties.xml,增加
name="DBControlPlugin "
value="com.example.H5PlusPlugin.DBControlPlugin " />
注意:配置文件中的name就是exec的第一個參數,value是java的類位置。
JS代碼:window.plus.bridge.exec("DBControlPlugin", "PluginTestFunction", [callbackID, Argus1, Argus2, Argus3, Argus4]);
java調用js:JSUtil.execCallback可以調用js
js調用java: window.plus.bridge.exec
2.WebView的addJavascriptInterface方式,網上很多事例,此處只講關鍵代碼:
webView = SDK.obatinFirstPage(app).obtainWebview();
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JSInterface(), "jsi");
java調用js: webView.loadUrl("javascript:jsText('"+text+"')");
js調用java: jsi.func
總結,2種方案都可以實現Native和JS互相調用通信。
總結
以上是生活随笔為你收集整理的android java 调用js_android WebApp 集成方式怎么使用java调用js的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java面试compareble_Jav
- 下一篇: java 命令行读取_Java:从控制台