有没有办法防止应用程序在发生JS未捕获错误时崩溃?
已经尝试将app.start(...)包装在try / catch中,但它肯定不起作用:)
答案 0 :(得分:1)
确实,你可以注册一个uncaughtErrorEvent
听众。
请参阅官方文档 - https://docs.nativescript.org/core-concepts/application-lifecycle#use-application-events
在引导应用程序之前,您可以在app.js中删除以下内容
var application = require("application");
application.on(application.uncaughtErrorEvent, function (args) {
if (args.android) {
// For Android applications, args.android is an NativeScriptError.
console.log("NativeScriptError: " + args.android);
} else if (args.ios) {
// For iOS applications, args.ios is NativeScriptError.
console.log("NativeScriptError: " + args.ios);
}
});
答案 1 :(得分:0)
无法防止应用崩溃。您可以在uncaughtError
应用程序事件中捕获错误,但是无论如何,该应用程序之后都会崩溃。
尝试导航到错误页面不起作用。
根据对此GitHub问题的评论:
有一种方法可以自定义显示的错误页面,但仅限于Android。显然,iOS没有类似的功能。
答案 2 :(得分:0)
这是一个较旧的问题,但是有一种文档化的方法可以防止使用低于4.2的Nativescript(您现在应该是6岁以上)
Disable rethrowing of uncaught js exceptions to native
基本上,捕获JS错误,但不要使本机应用程序崩溃。
也请注意免责声明。此时脚本将变得不稳定。是的,它没有崩溃,但是无论它死于何处都没有继续,因此对于稳定性可能会更糟。将应用置于错误状态或仅退出/重新崩溃可能更安全。