在 React Native 应用程序中访问 Intune 配置设置?

Access Intune configuration settings in a React Native application?

我的公司正在使用 Microsoft Intune 进行移动设备管理。我们已经成功部署了内部 iOS 应用程序(使用 Apple Developer Enterprise Program)。

通过 Intunes 的配置设置,我们试图让每个用户的个人电子邮件都可用于移动应用程序。 https://docs.microsoft.com/en-us/mem/intune/apps/app-configuration-policies-use-ios

您通常如何在应用程序中访问这些类型的设置?我找到了这个图书馆,但我需要从世博会中退出,这对我来说并不理想: https://github.com/robinpowered/react-native-mdm

由于 MDM 具有本机依赖项,​​您将无法使用 Expo 实现它。 Expo 项目仅使用 JavaScript 编写,不支持包含 Objective-C 或 Java(原生 code/dependencies)的包。

Expo 提供了一个名为 ExpoKit 的高级 SDK,供您绝对需要使用自定义本机代码时使用。但是,在某些情况下,开发人员需要 Expo 直接提供的功能之外的本机功能。最常见的情况是项目需要 React Native CoreExpo SDK 不支持的特定本机模块(如 MDM)。您必须分离 Expo 项目才能创建包含 ExpoKit 的 Xcode 和 Android Studio 项目。此步骤将生成 androidios 项目目录。然后您将添加自定义 Objective-C 或 Java,就像添加任何其他 Xcode 或 Android Studio 项目一样。

Expo 文档警告编写自定义本机代码的一些缺点,并劝阻我们的大多数开发人员不要走这条路,作为 Expo 的动机,几乎所有你需要做的事情都可以在 cross-platform 中更好地完成JS的方式。用 JS 编写使您能够最好地利用 code aster 部署,并从 Expo 的持续更新和支持中受益。仅当您对本机代码有特殊需求而 Expo 无法很好地支持时,您才应该这样做,例如(例如)必须在设备本地进行的专门 CPU-intensive 视频处理,自定义本机库.

这里只有两个支持 MDM 的选项,弹出项目或创建 react-native-cli 项目并将您的项目迁移到新创建的项目中。

您可以将 expo 支持添加到 react-native-mdm by fork react-native-mdm and use Config Plugins

这是将 expo 支持添加到本机包中的 PR https://github.com/Shobbak/react-native-compressor/pull/62

添加支持后您只需要做

托管博览会

yarn install react-native-mdm_from_your_fork

react-native-mdm 插件添加到您的 Expo 配置(app.jsonapp.config.jsonapp.config.js):

{
  "name": "my app",
  "plugins": ["react-native-mdm"]
}

最后,编译模组:

expo prebuild

要应用更改,请使用 EAS 构建新的二进制文件:

eas build