![](/img/trans.png)
[英]iOS 8 works but iOS 7 crashes with -[NSNull length]: unrecognized selector sent to instance
[英]Flutter flutter_webview_plugin error [NSNull length]: unrecognized selector sent to instance on ios
我正在使用flutter_webview_plugin: ^0.4.0
加载网站。 该应用程序在 Android 上运行良好。 在 IOs 我收到错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1fb513aa0'
对于行NSURL *scopeUrl = [NSURL fileURLWithPath:localUrlScope];
在 Xcode 的文件FlutterWebviewPlugin
中。
我已经添加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
来自我的Info.plist
的文档。
我尝试添加
<key>io.flutter.embedded_views_preview</key>
<string>YES</string>
在我的Info.plist
,但它没有用。 我还尝试将<string>YES</string>
替换为<true/>
也不起作用。
我尝试将目标 IOs 版本从 9.0 设置为 13.0,但问题仍然存在。
我正在使用这个 package 提供的文件选择器和警报对话框功能,所以我不能使用任何其他功能。
我用Uri.encodeFull()
包装了 URL 。
发生错误的代码块如下:
if (@available(iOS 9.0, *)) {
if(localUrlScope == nil) {
[self.webview loadFileURL:htmlUrl allowingReadAccessToURL:htmlUrl];
}
else {
NSURL *scopeUrl = [NSURL fileURLWithPath:localUrlScope]; //ERROR OCCURING HERE
[self.webview loadFileURL:htmlUrl allowingReadAccessToURL:scopeUrl];
}
} else {
@throw @"not available on version earlier than ios 9.0";
}
我跑了flutter doctor
,它没有显示任何问题。
每次我更改代码中的某些内容时,我都会删除Podfile.lock
, build
文件夹,运行flutter clean
以便在之前的一些尝试中所做的更改不会弄乱任何东西。
我正在使用带有 Dart 2.13.4、Flutter 2.5.0、XCode 13.0 (13.0) 的 M1 Mac
我之前在用这个 package 做类似的事情时遇到过这个问题,经过长时间的抨击,我从package 文档中找到了这个,
问题是当您将withLocalUrl
设置为true
时,您必须添加localUrlScope
选项以设置为 flutter 代码中目录的路径,或者您只需从中删除withLocalUrl:true
。
由于此选项在 Android 中被忽略,因此它可以正常工作,但对于 iOS 我们需要具体说明
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.