在现有的ios应用中进行react-native集成。 我有一个本机ios应用程序从远程服务器拉入ios包。 我按照react-native网站(https://facebook.github.io/react-native/docs/embedded-app-ios.html)上的说明操作,我可以在React中安装pod依赖项,并在模拟器中启动ios应用程序。
当我导航到加载react-native提供的视图的视图时,在该视图中加载react-native app的代码看起来像
NSString *urlString = @"https://<some_url_here>/main.jsbundle"; //a remotely hosted bundle.
NSURL *jsCodeLocation = [NSURL URLWithString:urlString];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName: @"react-native-app"
initialProperties: nil
launchOptions:nil];
当我直接点击https://<some_url_here>/main.jsbundle
我确实看到该包下载了,所以我知道该网址确实为该包服务。
我看到的问题是当我尝试加载视图时,我看到一个红色屏幕:
_fbBatchedBridge is undefined
当我在网上搜索此问题时,似乎问题发生在应用程序尝试从开发服务器提取捆绑包但开发服务器未运行时。这不适用于我的情况,因为捆绑包是远程托管的。
关于可能出现什么问题的任何想法?
答案 0 :(得分:-1)
这可能是ATS(App Transport Security)相关问题。尝试为您要连接的域禁用它以进行调试。
在您的Info.plist中:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.the-domain-name.com</key>
<dict>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
Xamarin有一个nice explanation用于改进ATS设置。