我们遇到了一个问题,如果我们知道 RN 应用程序运行时的包标识符,就可以解决这个问题。我们已经见过一些库,但宁愿不包含整个库来完成这件事。有没有一种简单的方法可以在代码中获取这些信息?
谢谢
Fad*_*lam 13
你也可以使用
import DeviceInfo from "react-native-device-info";
console.log("@ device ",DeviceInfo.getBundleId())
Run Code Online (Sandbox Code Playgroud)
似乎像react-native-device-info这样的库使用本机iOS和Android代码来返回应用程序包标识符,这意味着react-native在javascript中不提供该标识符。您可以使用 React Native 的本机模块API 将包 id 从 Java 或 Objective C 发送到 javascript(它们在链接文档中有一个关于如何导出常量值的部分)。
这里还有一些来自react-native-device-info的片段,介绍了他们如何检索包标识符。
在 Android 上(RNDeviceModule.java):
String bundleId = this.reactContext.getPackageName();
Run Code Online (Sandbox Code Playgroud)
在 iOS (RNDeviceInfo.m) 上 - 请记住 idk Objective-c,因此此代码段可能不起作用:
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"] ?: [NSNull null]
Run Code Online (Sandbox Code Playgroud)
另外,如果您当前正在使用 expo,那么您可以使用 Expo.Constants 访问 app.json 文件:
import { Constants } from 'expo';
// this will only work if you specify the bundleIdentifier in app.json
let bundleId = Constants.manifest.ios.bundleIdentifier;
Run Code Online (Sandbox Code Playgroud)
希望这篇乱七八糟的帖子能有所帮助!老实说,使用图书馆可能是值得的,但这取决于你。
| 归档时间: |
|
| 查看次数: |
20589 次 |
| 最近记录: |