如果我使用Chrome
在iphone5
、iphone6
、ipad
或iPad pro
上运行,我注意到我的ionic 2
会出现此错误:
内核.js:281 未捕获的类型错误:无法读取 null 的属性"1">
这显然是这样说的:
...
ver: (navigator.appVersion.match('Chrome/([0-9.]+)') ||
navigator.userAgent.match('Firefox/([0-9.]+)'))[1],///<---[1] is the issue
...
我用谷歌搜索并阅读了一些关于这个的信息,似乎是因为[1]
. 这篇文章建议删除[1]
.但我不确定kernel.js
在哪里。
现在这不是问题,因为我只部署到Android
(奇怪的是,即使在模拟中也没有问题,只有在所有ios
上,无论是模拟还是设备)。但我认为最好解决它,这样我的客户在决定部署到ios
时就不会对我咆哮。
我应该如何解决这个问题?
- 在哪里可以找到
kernel.js
?我查看node_modules
,它太大了,无法搜索。我想尝试删除它,看看它是否会给我带来问题。
如果没有匹配项,JavaScriptString.match()
函数将返回 null,因此在您的情况下,如果用户代理不是 FireFox。同样的错误也应该发生在Android上的Chrome或FireFox以外的浏览器上。您将需要检查这一点。
编辑: iOS 上的 Chrome 在导航器中没有标记为"Chrome",而是标记为"CriOS"。请参阅:https://developer.chrome.com/multidevice/user-agent