我在iOS上使用Cordova 3.5.0.
我的应用程序加载,’deviceReady’事件被触发,但直到我将我的应用程序放在后台(通过转到主屏幕)才执行插件操作.
当我回到我的应用程序时,’resume’处理程序被触发,日志显示在LLDB中,PushNotification插件开始侦听事件并尝试注册推送通知.
为什么只有在我的应用程序进入睡眠状态后才会发生这种情况?
这些是安装的插件(cordova插件ls):
com.patrickheneise.cordova.statusbar 0.0.2 "Status Bar"
com.phonegap.plugins.PushPlugin 2.2.1 "PushPlugin"
com.phonegap.plugins.actionsheet 1.0.0 "ActionSheet"
org.apache.cordova.console 0.2.10-dev "Console"
org.apache.cordova.dialogs 0.2.9-dev "Notification"
org.apache.cordova.vibration 0.3.10-dev "Vibration"
提前致谢.
解决方法:
我在自己的应用程序中遇到了与cordova 6.3.0相同的问题.
经过几十次测试后我发现了问题.
我有一个Content-Security-Policy元标记定义如下:
<meta http-equiv="Content-Security-Policy" content="default-src *;
style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
'unsafe-eval'; media-src *">
事实证明,default-src *是不够的.
使用以下策略:
<meta http-equiv="Content-Security-Policy" content="default-src *
'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline';
script-src 'self' 'unsafe-inline' 'unsafe-eval'; media-src *">
这里的关键部分是差距:
似乎需要在iOS上正确执行cordova插件代码.
但我仍然觉得这个政策受到恢复应用程序的影响很奇怪.
附加说明:该问题似乎会影响在webview外部显示的所有插件.我用cordova-plugin-camera,phonegap-plugin-barcodescanner,cordova-plugin-dialogs.其他插件如cordova-plugin-file-transfer工作得很好.
原文地址:https://codeday.me/bug/20190830/1769411.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。