[英]Calling native java code from JS with cordova-plugin-crosswalk-webview
我可以使用@JavascriptInterface在Cordova 5.4.0應用程序中從JS成功調用本地Java代碼。 但是在添加cordova-plugin-crosswalk-webview之后,它不起作用。 搜索后,我將代碼修改為:-
public class MainActivity extends CordovaActivity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
loadUrl("file://android_assets/www/index.html");
((XWalkView)appView.getEngine().getView()).addJavascriptInterface(this,"MainActivity");
}
@JavascriptInterface
public void getMessage() {
Toast.makeText(getApplicationContext(), "this is my Toast message!!! =)",Toast.LENGTH_LONG).show();
}
}
並從js調用本機代碼為:
window.MainActivity.getMessage();
我也進口了
import org.xwalk.core.JavascriptInterface;
import org.xwalk.core.XWalkView;
還嘗試更換
@JavascriptInterface
與
@org.xwalk.core.JavascriptInterface
現在,該應用程序甚至無法打開。 它崩潰了。 幫助Plz。
在addJavaScriptInterface()
內部調用onXWalkReady()
而不是在onCreate()回調中執行此操作,對我來說解決了這個問題。
PS:方法鏈接不是一個好習慣。
將config.xml
首選項name="android-minSdkVersion" value="16"
更新為首選項name="android-minSdkVersion" value="17
並使用import org.xwalk.core.JavascriptInterface;
使用cordova版本6.3.0或更新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.