React Nativeアプリケーション(iOSとAndroid)のさまざまなエラーをグローバルハンドラとして報告するソリューションはありますか?React Nativeアプリケーションでさまざまなエラーを報告するにはどうすればよいですか?
I例を以下に興味を持っています:
- 未処理の拒絶
- 未処理の例外
- ネイティブ側のエラー
報告することによって、私はいくつかのサードパーティに送信する意味エラーを追跡できるサービスです。
React Nativeアプリケーション(iOSとAndroid)のさまざまなエラーをグローバルハンドラとして報告するソリューションはありますか?React Nativeアプリケーションでさまざまなエラーを報告するにはどうすればよいですか?
I例を以下に興味を持っています:
報告することによって、私はいくつかのサードパーティに送信する意味エラーを追跡できるサービスです。
RNには、RU JSレイヤーのキャッチされない例外とキャッチされた例外を処理するErrorUtilsグローバルハンドラがあります。あなたが唯一のアンドロイドのためのノードモジュールを作成し、そこで反応するネイティブブリッジ法を記述する必要が上記のコードでお知らせ
if (ErrorUtils._globalHandler) {
instance.defaultHandler = ErrorUtils.getGlobalHandler && ErrorUtils.getGlobalHandler() || ErrorUtils._globalHandler;
ErrorUtils.setGlobalHandler(instance.wrapGlobalHandler); //feed errors directly to our wrapGlobalHandler function
}
そして、ハンドラメソッド
async wrapGlobalHandler(error, isFatal){
const stack = parseErrorStack(error);
//Add this error locally or send it your remote server here
//*> Finish activity
setTimeout (() => {
instance.defaultHandler(error, isFatal); //after you're finished, call the defaultHandler so that react-native also gets the error
if (Platform.OS == 'android') {
NodeModule.reload()
}
}, 1000);
}
を:あなたは次のようにハンドラを設定するためにこれを使用することができますあなたのReactContextBaseJavaModule:
@ReactMethod
public void reload() {
Activity activity = getCurrentActivityInstance();
Intent intent = activity.getIntent();
activity.finish();
activity.startActivity(intent);
}
ありがとう!
https://stackoverflow.com/questions/30918349/how-to-catch-uncaught-exception-globally-in-react-native – gyzerok
[反応ネイティブでキャッチされない例外(グローバルに)を捕捉する方法]の可能な複製http://stackoverflow.com/questions/30918349/how-to-catch-uncaught-exception-globally-in-react-native) – gyzerok