我正在使用Cordova开发Android应用。我有一个自定义的BroadcastReceiver,我想在onReceive
方法中打开主(也是唯一一个)CordovaActivity。它工作正常。
现在,我需要执行一个Javascript函数来根据意图的额外值来决定显示哪个屏幕(html)。
MyBroadcastReceiver.java
public void onReceive(Context context, Intent intent) {
String myExtra = intent.getStringExtra("myExtra");
Intent toActivity = new Intent(context, MainCordovaActivity.class);
toActivity.putExtra("myExtra", myExtra);
context.startActivity(newActivity);
}
MainCordovaActivity.java
public class MainCordovaActivity extends CordovaActivity {
public void onCreate(Bundle s) {
super.onCreate(s);
super.init();
loadUrl(launchUrl);
String myExtra = getIntent().getExtras().getString("myExtra");
//Execute Javascript here
}
}
我该怎么做?我是以正确的方式吗?
感谢。
答案 0 :(得分:0)
你需要让回调能够在你的插件中经过一段时间后调用成功/错误回调函数,如this:
在一些java类方法中:
PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
r.setKeepCallback(true);
callbackContext.sendPluginResult(r);
// assign callbackContext to class property named callbackContext
this.callbackContext = callbackContext;
然后,您可以将一个字符串(例如序列化的 JSONObject )传递给 PluginResult 的新实例,该实例将作为参数值返回到您的成功/错误函数:
在一些java类方法中:
JSONObject serialized = new JSONObject();
serialized.put("value",1234);
// use assigned class property callbackContext to send some data back to your success callback
// because of PluginResult.Status.OK and by passing PluginResult.Status.ERROR you invoke error callback
this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, serialized));
查看 PluginResult 接受的参数here。
在plugin.js文件中:
exec(function(serialized){
console.log(serialized.value);// 1234
}, function(){}, "your plugin name", "your plugin action", { some_arg:'for your plugin'});