我正在使用flutter_webview_plugin: ^0.4.0加載網站。該應用程式在 Android 上運行良好。在 IO 上我收到錯誤
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1fb513aa0'
對于XcodeNSURL *scopeUrl = [NSURL fileURLWithPath:localUrlScope];中檔案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/>它沒有作業過。
我已經嘗試將目標 IO 版本從 9.0 設定為 13.0,但問題仍然存在。
我正在使用此包提供的檔案選擇器和警報對話框功能,因此我無法使用其他任何功能。
我已經用Uri.encodeFull().
發生錯誤的代碼塊如下:
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, buildfolder, runflutter clean以便在之前的一些嘗試中所做的更改不會弄亂任何東西。
我使用的是帶有 Dart 2.13.4、Flutter 2.5.0、XCode 13.0 (13A233) 的 M1 Mac
uj5u.com熱心網友回復:
我之前在使用這個包做類似的事情時遇到過這個問題,經過長時間的猛烈抨擊,我從![Flutter flutter_webview_plugin 錯誤 [NSNull 長度]:無法識別的選擇器發送到 ios 上的實體](https://img.uj5u.com/2021/11/19/0db4ee5439c141e18860aa2636695adb.png)
事情是當您設定withLocalUrl為 時true,您必須添加localUrlScope選項以設定為顫振代碼中目錄的路徑,或者您只需withLocalUrl:true從中洗掉。
由于此選項在 Android 中被忽略,因此它沒有問題,但對于 iOS,我們需要對此進行具體說明
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360808.html
標籤:ios 目标-c 代码 扑 flutterwebview插件
