我正在使用UIWebView来查看本地HTML文件。我的文件名为 NoWiFi.html ,并具有以下路径Resources / NoWiFi.html。我还将Build Action设置为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
为什么我的代码找不到文件?
答案 0 :(得分:1)
因为您加载了本地html文件,所以您应该使用
import React, { Component } from "react";
import ReactDOM from "react-dom";
import CreatableSelect from "react-select/creatable";
import { createFilter } from "react-select";
import { colourOptions } from "./colourOptions.js";
export default class CreatableMulti extends Component {
handleChange = (newValue, actionMeta) => {
console.group("Value Changed");
console.log(newValue);
console.log(`action: ${actionMeta.action}`);
console.groupEnd();
};
handleIsValidNewOption = (inputValue, selectValue, selectOptions) => {
console.log(inputValue, selectOptions);
// Check for the same value --> ASD === ASD ?
const exactValueExists = selectOptions.find(el => el.value === inputValue);
// Check if the value has a valid length.
// Without this, it will show create option for empty values.
const valueIsNotEmpty = inputValue.trim().length;
// If true show create option.
return !exactValueExists && valueIsNotEmpty;
};
render() {
return (
<CreatableSelect
isMulti={true}
onChange={this.handleChange}
options={colourOptions}
filterOption={createFilter({ ignoreCase: false })}
isValidNewOption={this.handleIsValidNewOption}
/>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<CreatableMulti />, rootElement);
isDir :一个布尔值,它指定在解析相对路径分量时是否将路径视为目录路径。如果路径指示目录,则传递True;否则,传递False。
答案 1 :(得分:0)
由于某种有线原因,一旦我重命名了文件,我的问题就自动解决了,如果其他人想加载本地HTML文件,我的代码如下所示:
NSUrl url = NSBundle.MainBundle.GetUrlForResource("NoWiFi", "html");
webView.LoadRequest(new NSUrlRequest(url));
如果在使用调试器检查时url对象为null,请确保本地文件(在我的情况下为NoWiFi.html)将Build Action设置为:BundleResource,并且如果NSUrl对象仍为null,请尝试重命名文件