第二次插件调用后收到的Cordova插件回调
Cordova plugin callback received after second plugin call
我创建了一个cordova插件(3.3.0),它启动一个活动并等待结果。但是回调(简单的警报)不是调用,直到第二次启动插件。下面是代码:
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()
;
例如:如果我点击一个调用插件的按钮,什么都不会发生。我第二次点击,警报消息显示,没有更多的(通常是另一个警报)…
你有什么想法吗?
如果需要更多代码,请告诉我。
EDIT:更新Cordova没有解决问题。
EDIT 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);
}
}
如果我删除它,回调将第一次被调用。有问题吗?
在这种情况下我也遇到了麻烦。
在我的情况下,插件是从标签触发的,其中点击处理程序绑定,在iframe内容。当我移动一个标签并单击处理程序到父文档时,问题就解决了。
你能像这样试试吗?
我为自己解决了这个问题,希望它能为别人工作。我使用的是require.js,当我在代码中不止一次调用require("cordova")时,问题出现了,在我删除冗余的需求后,问题消失了。
对我来说,问题仅仅是HTML文档中存在一个空iframe标记。删除iframe完全修复了这个问题。谢谢你给我指明了正确的方向。
相关文章:
- 使用filetransfer/cordova插件上传一些文件
- 使用Tabris-js,并尝试使用cordova文件和文件传输插件
- PhoneGap 2.0(Cordova)DatePicker插件'模式'-属性以获取日期和时间
- phoneGap/Cordova插件加载顺序/交易w/AdBlock
- Cordova插件在使用Framework7时不起作用
- 来自cordova的Ionic未定义插件
- PhoneGap Cordova媒体插件 - 如何集成/安装
- Cordova SQLite插件仅在第一次调用时有效
- 我想在混合移动应用程序中使用Sqlite插件(Cordova)创建一个示例项目
- PhoneGap/Cordova 日历 iOS 插件不发送信息
- Cordova Http插件:postJSON不是函数
- 使用cordova插件删除iOS中应用程序的临时目录
- Apache Cordova(PhoneGap)2.0中的谷歌adMob,无插件
- 使用cordova谷歌地图插件与angular/ionic
- json格式作为cordova或phonegap ios插件的参数
- cordova插件屏幕方向不适用于特定页面
- Cordova Android短信插件不会触发成功或错误回调
- Cordova 3.x插件开发
- SQLite插件Cordova基本代码
- 隐藏inAppBrowser插件Cordova 3+中的历史按钮