繁体   English   中英

Flutter flutter_webview_plugin 错误 [NSNull 长度]:无法识别的选择器发送到 ios 上的实例

[英]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.lockbuild文件夹,运行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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM