为什么 NSBundle.MainBundle.GetUrlForResource 返回 null

Why is NSBundle.MainBundle.GetUrlForResource returning null

我正在使用 UIWebView 查看本地 HTML 文件。我的文件名为 NoWiFi.html 并具有以下路径 Resources/NoWiFi.html。我还将构建操作设置为 BundleResource,并尝试:

string name = "Resources/NoWiFI.html"
NSURl url;

url = new NSUrl(Path.Combine(NSBundle.MainBundle.BundlePath, name), false);
// and
url = NSBundle.MainBundle.GetUrlForResource("NoWiFi", "html"); // returns null 

webView.LoadRequest(new NSUrlRequest(url));

xamarins documentation 但随后我收到错误消息:在此服务器上找不到请求的 URL

为什么我的代码找不到文件?

因为你加载本地 html 文件。所以你应该使用

webView.LoadRequest(new NSUrlRequest(url),false);

isDir:一个布尔值,指定在解析相对路径组件时是否将路径视为目录路径。如果路径指示目录,则传递 True,否则传递 False。

由于某些有线原因,我的问题在我重命名文件后自行解决,如果其他人试图加载本地 HTML 文件,我的代码如下所示:

NSUrl url = NSBundle.MainBundle.GetUrlForResource("NoWiFi", "html");
webView.LoadRequest(new NSUrlRequest(url));

并且如果您的 url 对象在您使用调试器检查它时为空,请确保本地文件(在我的例子中 NoWiFi.html)已将构建操作设置为:BundleResource 并且如果 NSUrl对象仍然为空,请尝试重命名文件