我创建了一个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();
例如:如果我点击调用插件的按钮,则没有任何反应.我再次点击,显示警报消息,仅此而已(通常是另一个警报)……
你有什么主意吗 ?
告诉我是否需要更多代码.
编辑:更新Cordova没有解决问题.
编辑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内容中绑定了单击处理程序.
当我移动标签并单击处理程序到父文档时,问题就解决了.
你能尝试这些吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。