从本机java代码调用JS事件

时间:2015-02-04 04:36:08

标签: javascript android cordova

我正在创建一个cordova插件,我需要在角度JS代码中引发自定义事件。

例如,我需要从本机java代码

调用下面的函数
var callFromJava=function(){
   alert("Call received from Native code");
}

现在我需要通过本机代码中的活动来调用它。

更新1 Cordova文件

public class CordovaApp extends CordovaActivity
{
    super.onCreate(savedInstanceState);
    super.init();
    wv = new CordovaWebView(this);
    Log.i("PARSEPUSH","URL of main "+wv.getUrl());
    // Set by <content src="index.html" /> in config.xml.
    Log.i("PARSEPUSH",launchUrl);
    loadUrl(launchUrl);



   public void callJS(){
      //something goes here to call JS event.
   }
} 

我想使用Cordova loadUrlsendJavascript()方法。我不知道如何使用它们。

1 个答案:

答案 0 :(得分:1)

 public void callJS() {
    if (this.appView != null) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            appView.stopLoading();
            appView.evaluateJavascript("(function(){return document.location.href;})();", new ValueCallback<String>() {                       @Override
                public void onReceiveValue(String value) {
                    //doSomething for the return value
                }
            });
        } else {
            appView.loadUrl("javascript:alert(document.location.href);");
        }
    }

请参阅此代码段以了解它是否有帮助。这与Codorva Phonegap无关,只是从Java端调用Js。

如果你想写Cordova插件,你可以参考Devgirl's Weblog。她写了很多关于电话差距扩展的优秀文章。