以编程方式重新启动 React Native 应用程序

新手上路,请多包涵

是否可以在不编写任何本机代码的情况下以编程方式重新启动 React Native 应用程序?

例如,我从 这个问题 的答案中知道,我可以通过以下方式重新启动 Android 应用程序:

 Intent i = getBaseContext().getPackageManager()
         .getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

我可以对 React Native 做同样的事情吗?

原文由 Adam Jakiela 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

如果你只想重启 JS 部分,那么你可以使用 React Native Restart Package 。这将适用于 Android 和 iOS。

如果你想重启整个应用程序,目前还没有 react native 包。如果您想自己创建,请查看以下链接

为 React Native 构建自定义 Android 模块

如果您发现编写基本 JAVA 代码有困难,您可以使用 React Native Create Library 生成样板

更新:

从 0.62 开始,React Native 增加了 DevSettings.reload() 。因此,如果您想在开发时以编程方式重新加载,您可以使用它。请注意,此方法在生产中不起作用!

单击此处获取文档

原文由 Sriraman 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用 Expo,您还可以使用 https://docs.expo.io/versions/v38.0.0/sdk/updates/ 特别是 Updates.reloadAsync() 作为替代方案。 expo 的 Updates API 允许您以编程方式控制和响应应用程序的无线更新。

安装

expo install expo-updates

利用

import * as Updates from 'expo-updates';

...

async function reloadApp () {
    await Updates.reloadAsync();
}

原文由 Jo E. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题