Skip to content

UIWebView

UIWebView 用于在插件中嵌入网页或本地 HTML 页面,继承自 UIView。可通过设置 delegate 接收加载开始/完成/失败与请求拦截(如自定义 URL Scheme 实现 WebView 内 JS 与插件 JS 的双向通信)。参见 Cookbook:WebView 内 JS 与插件 JS 双向通信

属性类型说明
delegateid实现 UIWebViewDelegate 的对象,通常为承载 WebView 的 ViewController(self);需在其实例成员中实现 webViewDidStartLoad、webViewDidFinishLoad、webViewDidFailLoadWithError、webViewShouldStartLoadWithRequestNavigationType。
scrollViewUIScrollView只读,内嵌滚动视图。
requestNSURLRequest只读,当前请求。
loadingboolean只读,是否正在加载(getter 为 isLoading)。
canGoBackboolean只读,是否可后退。
canGoForwardboolean只读,是否可前进。
scalesPageToFitboolean是否按比例缩放以适应视图。
dataDetectorTypesUIDataDetectorTypes检测的数据类型(如电话、链接)。
customUserAgentstring自定义 User-Agent。
方法参数说明
loadRequest(request)request: NSURLRequest加载 URL 请求(如远程网页)。
loadHTMLString(string, baseURL)string: string, baseURL: NSURL | null加载 HTML 字符串;baseURL 可为 null。部分环境导出名为 loadHTMLStringBaseURL
loadData(data, MIMEType, textEncodingName, baseURL)data: NSData, MIMEType, textEncodingName: string, baseURL: NSURL加载二进制数据。
loadFileURL(URL, allowingReadAccessToURL)URL, readAccessURL: NSURL加载本地文件 URL。
reload()重新加载。
stopLoading()停止加载。
goBack() / goForward()后退 / 前进。
方法参数说明
evaluateJavaScript(javaScriptString, completionHandler)javaScriptString: string, completionHandler: (result) => void | null在页面上下文中执行 JS;执行完成后调用 completionHandler(可选)。用于插件 → WebView 内 JS 的通信。
takeSnapshotWithWidth(width, completionHandler)width: number, completionHandler按指定宽度截取快照,完成后回调。

以下方法需在 webView.delegate 所指对象的实例成员中实现(例如承载 WebView 的 ViewController 在 JSB.defineClass 的第二个参数里定义)。

方法参数返回值说明
webViewDidStartLoad(webView)webView: UIWebView开始加载时调用。
webViewDidFinishLoad(webView)webView: UIWebView加载完成时调用。
webViewDidFailLoadWithError(webView, error)webView, error加载失败时调用。
webViewShouldStartLoadWithRequestNavigationType(webView, request, type)webView, request: NSURLRequest, type: numberboolean是否允许加载该请求;可在此拦截自定义 URL Scheme(如 marginnote://...),解析后执行插件逻辑并 return false 阻止实际加载,实现 WebView 内 JS → 插件 的通信。