deviceready 仅在 iOS 10 30 秒后触发
deviceready only fire after 30 seconds in iOS 10
当我 运行 在我的 iOS 设备上使用
时,我的 ionic 应用程序没有启动或启动很晚
ionic run ios --device -lcs
我删除了所有带有ionic plugin rm ...
的插件,删除了plugins/
目录的内容,然后重新安装。
我还使用 ionic platform rm/add ios
.
删除并重新安装了 ios 平台
我被这个困住了。
iPhone (6+) 在 iOS 10.
我正在使用 ionic 1 和最后一个 ionic CLI。
编辑: 我一个一个地删除了所有插件,看来问题是由于 cordova-plugin-network-information 和 cordova-plugin-device。
Process 663 detached
(lldb)
(node:26790) DeprecationWarning: Using Buffer without `new` will soon stop working. Use `new Buffer()`, or preferably `Buffer.from()`, `Buffer.allocUnsafe()` or `Buffer.alloc()` instead.
14 030280 warn Native: deviceready did not fire within 2000ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.
15 030605 info [object Object]
16 033286 log deviceready has not fired after 5 seconds.
17 033290 log Channel not fired: onCordovaInfoReady
18 033293 log Channel not fired: onCordovaConnectionReady
19 363977 log DEVICE READY FIRED AFTER, 32259, ms
我的 run.js、AppCtrl.js 和我的主视图的控制器封装在 $ionicPlatform.ready(function () {..});`
我的内容安全策略是:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; connect-src 'self' 'unsafe-inline' 'unsafe-eval' blob: ws: *;">
这似乎是 Ionic 框架的常见问题,可能有多种原因。原因之一可能是您使用的插件存在问题,也可能是平台文件夹存在问题。 Ionic CLI 项目中似乎有关于此的 open issue。
以下可能是此问题的可能修复方法:
- 删除有问题的插件并重新添加
- 删除平台文件夹并重新添加。
- 可能避免使用实时重新加载选项
- 如果问题是 iOS 特定的,那么您可以尝试放宽内容安全策略
你也可以看看这个link
希望这对您有所帮助。
我添加了感谢@baviskarmitesh 的回复。但是我必须将 gap
添加到内容安全策略中,现在它似乎可以工作了。
我在 index.html 文件的 内容安全策略 中添加 data: gap: https://ssl.gstatic.com 'unsafe-eval'
after default-src *
,如下所示:
<meta http-equiv="Content-Security-Policy" content="
default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval';
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
script-src 'self' 'unsafe-inline' 'unsafe-eval' *;
connect-src 'self' 'unsafe-inline' 'unsafe-eval' blob: ws: *;
">
现在 deviceready 可以快速触发我所有的插件。
当我 运行 在我的 iOS 设备上使用
时,我的 ionic 应用程序没有启动或启动很晚ionic run ios --device -lcs
我删除了所有带有ionic plugin rm ...
的插件,删除了plugins/
目录的内容,然后重新安装。
我还使用 ionic platform rm/add ios
.
我被这个困住了。
iPhone (6+) 在 iOS 10.
我正在使用 ionic 1 和最后一个 ionic CLI。
编辑: 我一个一个地删除了所有插件,看来问题是由于 cordova-plugin-network-information 和 cordova-plugin-device。
Process 663 detached
(lldb)
(node:26790) DeprecationWarning: Using Buffer without `new` will soon stop working. Use `new Buffer()`, or preferably `Buffer.from()`, `Buffer.allocUnsafe()` or `Buffer.alloc()` instead.
14 030280 warn Native: deviceready did not fire within 2000ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.
15 030605 info [object Object]
16 033286 log deviceready has not fired after 5 seconds.
17 033290 log Channel not fired: onCordovaInfoReady
18 033293 log Channel not fired: onCordovaConnectionReady
19 363977 log DEVICE READY FIRED AFTER, 32259, ms
我的 run.js、AppCtrl.js 和我的主视图的控制器封装在 $ionicPlatform.ready(function () {..});`
我的内容安全策略是:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; connect-src 'self' 'unsafe-inline' 'unsafe-eval' blob: ws: *;">
这似乎是 Ionic 框架的常见问题,可能有多种原因。原因之一可能是您使用的插件存在问题,也可能是平台文件夹存在问题。 Ionic CLI 项目中似乎有关于此的 open issue。
以下可能是此问题的可能修复方法:
- 删除有问题的插件并重新添加
- 删除平台文件夹并重新添加。
- 可能避免使用实时重新加载选项
- 如果问题是 iOS 特定的,那么您可以尝试放宽内容安全策略
你也可以看看这个link
希望这对您有所帮助。
我添加了感谢@baviskarmitesh 的回复。但是我必须将 gap
添加到内容安全策略中,现在它似乎可以工作了。
我在 index.html 文件的 内容安全策略 中添加 data: gap: https://ssl.gstatic.com 'unsafe-eval'
after default-src *
,如下所示:
<meta http-equiv="Content-Security-Policy" content="
default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval';
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
script-src 'self' 'unsafe-inline' 'unsafe-eval' *;
connect-src 'self' 'unsafe-inline' 'unsafe-eval' blob: ws: *;
">
现在 deviceready 可以快速触发我所有的插件。