我創建了一個cordova插件(3.3.0),它啓動一個活動並等待結果。但是回調(簡單警報)在第二次插入該插件之前不會被調用。下面是代碼:第二次插件調用後收到Cordova插件回調
public boolean execute(String action, final JSONArray args, final CallbackContext cbc) throws JSONException
{
this.callbackContext = cbc;
try
{
Intent i = new Intent(cordova.getActivity(), ActivityCamera.class);
this.cordova.setActivityResultCallback(PhotoMokoPlugin.this);
this.cordova.startActivityForResult(PhotoMokoPlugin.this, i, 0);
PluginResult pr = new PluginResult(PluginResult.Status.NO_RESULT);
pr.setKeepCallback(true);
callbackContext.sendPluginResult(pr);
return true;
}
catch (JSONException e)
{
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
return false;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
try
{
callbackContext.success(json.toString()); // Doesn't matter if success or error
}
catch (JSONException e)
{
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR));
}
}
的ActivityCamera只setResult
用新Intent
AVEC finish()
;
例如:如果我點擊一個調用插件的按鈕,則什麼都不會發生。我再次單擊,顯示警報消息,僅此而已(通常是另一個警報)...
你有什麼想法嗎?
告訴我是否需要更多代碼。
編輯:更新科爾多瓦沒有解決問題。
編輯2:這個問題似乎來源於此代碼:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus)
{
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
如果我刪除它,回調被稱爲第一次。有問題嗎?
你是否發現瞭如何解決這個問題,並有能力在全屏模式下工作? –
是的,沒有。我刪除了'onWindowFocusChanged',並添加了Immersify插件。它現在似乎正常工作,但它不是最好的問題! –