我有這樣Peacemoon同樣的問題上Android Phonegap: Notify javascript when an AsyncTask is finished的Android的PhoneGap 3.4:通知時的AsyncTask完成
好JavaScript的,這適用於年齡較大的PhoneGap版本,但... 我的問題:這不起作用上較新的PhoneGap版本,如PhoneGap 3.4。
現在插件類繼承自CordovaPlugin,現在執行方法的返回類型是boolean,而參數是CallbackContext,而不是int callbackId等等。我現在如何才能實現異步任務?
我的方法:
private CallbackContext myCallbackContext;
@Override
public boolean execute(String action, JSONArray args,
final CallbackContext callbackId)
{
this.myCallbackContext = callbackId;
if (action.equals("test"))
{
Intent intent = new Intent("com.companyname.name.TEST");
this.cordova.startActivityForResult((CordovaPlugin) this, intent, 0);
// create an empty result, because the asynchronous call can take long
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
pluginResult.setKeepCallback(true);
this.myCallbackContext.sendPluginResult(pluginResult);
this.myCallbackContext.success;
return true;
}
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == Activity.RESULT_OK)
{
Bundle korb = intent.getExtras();
String osVersion = korb.getString("osVersion");
JSONObject obj = new JSONObject();
try
{
obj.put("osVersion", osVersion);
} catch(JSONException e)
{
// Log
}
PluginResult result = new PluginResult(PluginResult.Status.OK, obj);
result.setKeepCallback(false);
this.myCallbackContext.sendPluginResult(result);
this.myCallbackContext.success(obj);
}
我回JavaScript是不確定的。但它適用於舊版本的PhoneGap版本,比如1。它如何在更新的PhoneGap版本上運行?
這不適合我。 我的com.companyname.name.TEST活動昨天沒有被調用。有些方法是空的或在我的MainActivity中返回null,但以下例外: @Override public Activity getActivity(){ return this; } 今天,我將代碼添加到這些方法中,如cordova的framewokk/src中的CordovaActivity.java文件中的代碼。所以,我的com.companyname.name.TEST活動被調用。但是onActivityResult不會被調用。 我上面的代碼位於從CordovaPlugin擴展的TestPlugin類中。 我的MainActivity從Activity延伸並實現了CordovaInterface。 – Jean
您不需要對cordova應用程序的主要活動進行任何更改以使插件能夠正常工作,只需對擴展CordovaPlugin類的類進行操作即可,這裏是您意圖啓動的活動。當你想退出com.companyname.name.TEST時,你打電話給setResult(resultcode,intent)和finish()嗎? – QuickFix
檢查我的答案在這個其他職位,也許它會有所幫助:http://stackoverflow.com/questions/21858861/phonegap-android-plugin-close-the-plugin-activity – QuickFix