Cordova white screen of death iOS - browserify, react, cordo



我在一个iOS项目中遇到了一个奇怪的情况

它是用Cordova的browserify和React创建的,目标是iOS。

我们已经使用Cordova命令构建了iOS项目,没有任何问题。它运行没有xcode错误或Javascript错误,但没有JS ui出现在屏幕上。我们只得到一个空白的屏幕,系统栏在顶部。

到目前为止,我们已经发现,如果你在WWW文件夹中添加HTML到index.html,它打印得很好,所以我认为它是JS。

当我们在浏览器中运行时,它可以像Android一样运行。

除了iOS(模拟器和设备构建),我们没有任何问题。

希望有人能帮助我,因为我被难住了。请让我知道你需要看什么文件,我会提供给你。

提前感谢。

图片错误界面:http://www.voidapplications.co.uk/errorScreen.png我们期望显示的内容:http://www.voidapplications.co.uk/whatWeExpect.png

如果您正在使用国际化组件,那是因为您需要使用Intl polyfill:

Intl.js和FT Polyfill Service

Intl.js polyfill最近被添加到polyfill服务中,该服务由金融时报的一个团队领导的贡献者社区开发和维护。它是通过cdn.polyfill.io域,路由流量通过快速,这使得它具有全球高可用性和卓越的性能,无论你的用户在哪里。

要通过polyfill服务使用Intl polyfill,只需在加载或解析自己的JavaScript之前在页面中添加一个脚本标签:

<script src="https://cdn.polyfill.io/v1/polyfill.min.jsfeatures=Intl.~locale.en"></script>

当指定features要通过填充服务使用时,您必须指定什么区域设置,或区域设置加载与页面功能的Intl填充,在上面的例子中,我们指定Intl.~locale.en,这意味着只有en,但您可以这样做:

<script src="https://cdn.polyfill.io/v1/polyfill.min.js?features=Intl.~locale.fr,Intl.~locale.pt"></script>

注意:上面的例子将用两个区域数据集frpt加载多边形。

这是迄今为止使用Intl polyfill的最佳选择,因为它只会在真正需要时加载polyfill代码和相应的语言环境数据(例如:safari将获得代码并修补运行时,而chrome将获得空脚本标签)。

源,包含Intl polyfill的其他方法:https://github.com/andyearnshaw/Intl.js#getting-started

你可以用Safari http://moduscreate.com/enable-remote-web-inspector-in-ios-6/在模拟器中调试UIWebView。您可能会在控制台中看到一个很大的错误消息,如果没有,您将可以访问调试器,以便您可以逐步完成并对其进行排序。

我过去遇到过这个问题,原来是不支持的javascript功能。例如,设置函数中的默认参数。即:

function test( myvalue=0 ) { /* ... */ };

必须在函数内部初始化值。你也可以尝试删除你可能已经实现的任何ecma脚本2016功能。

解决这类问题很痛苦。我创建了我的产品的最小部分的最小版本,编译并运行在ios模拟器上,添加了产品的另一个块,冲洗和重复。

我相信有更好的方法来检测这些问题,但我不知道。

最新更新