簡體   English   中英

使用cordova-plugin-crosswalk-webview從JS調用本機Java代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM