Skip to content

UIWebView

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

属性类型说明
delegateid实现 UIWebViewDelegate 的对象,通常为承载 WebView 的 ViewController(self)。
scrollViewUIScrollView只读,内嵌滚动视图。
requestNSURLRequest只读,当前请求。
loadingboolean只读,是否正在加载(getter 为 isLoading)。
canGoBackboolean只读,是否可后退。
canGoForwardboolean只读,是否可前进。
scalesPageToFitboolean是否按比例缩放以适应视图。
dataDetectorTypesUIDataDetectorTypes检测的数据类型(如电话、链接)。
customUserAgentstring自定义 User-Agent。

加载 URL 请求(如远程网页)。

loadRequest(request: NSURLRequest): void

Parameters:

NameTypeDescription
requestNSURLRequestURL 请求对象。

加载 HTML 字符串。

loadHTMLStringBaseURL(string: string, baseURL: NSURL | null): void

Parameters:

NameTypeDescription
stringstringHTML 内容字符串。
baseURLNSURL | null基础 URL(用于解析相对路径)。

Note: 该方法对应 Objective‑C 的 loadHTMLString:baseURL:,JS 侧为参数标签拼接后的方法名。

加载二进制数据。

loadDataMIMETypeTextEncodingNameBaseURL(data: NSData, MIMEType: string, textEncodingName: string, baseURL: NSURL): void

Parameters:

NameTypeDescription
dataNSData数据内容。
MIMETypestringMIME 类型(如 “text/html”)。
textEncodingNamestring文本编码名称(如 “UTF-8”)。
baseURLNSURL基础 URL。

加载本地文件 URL。

loadFileURLAllowingReadAccessToURL(URL: NSURL, allowingReadAccessToURL: NSURL): void

Parameters:

NameTypeDescription
URLNSURL文件 URL。
allowingReadAccessToURLNSURL允许读取的访问路径(通常也是文件 URL 或其父目录)。

重新加载。

reload(): void

停止加载。

stopLoading(): void

后退。

goBack(): void

前进。

goForward(): void

在页面上下文中执行 JS;执行完成后调用 completionHandler(可选)。用于插件 → WebView 内 JS 的通信。

evaluateJavaScript(javaScriptString: string, completionHandler: (result: any) => void | null): void

Parameters:

NameTypeDescription
javaScriptStringstring要执行的 JavaScript 代码字符串。
completionHandler(result: any) => void | null执行完成后的回调,result 为执行结果。

按指定宽度截取快照,完成后回调。

takeSnapshotWithWidth(width: number, completionHandler: (image: UIImage) => void): void

Parameters:

NameTypeDescription
widthnumber快照宽度。
completionHandler(image: UIImage) => void完成回调,接收生成的图片。

Delegate(UIWebViewDelegate,非 UIWebView 导出方法)

Section titled “Delegate(UIWebViewDelegate,非 UIWebView 导出方法)”

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

开始加载时调用。

webViewDidStartLoad(webView: UIWebView): void

Parameters:

NameTypeDescription
webViewUIWebView发起回调的 WebView。

加载完成时调用。

webViewDidFinishLoad(webView: UIWebView): void

Parameters:

NameTypeDescription
webViewUIWebView发起回调的 WebView。

加载失败时调用。

webViewDidFailLoadWithError(webView: UIWebView, error: NSError): void

Parameters:

NameTypeDescription
webViewUIWebView发起回调的 WebView。
errorNSError错误信息。

webViewShouldStartLoadWithRequestNavigationType

Section titled “webViewShouldStartLoadWithRequestNavigationType”

是否允许加载该请求。

webViewShouldStartLoadWithRequestNavigationType(webView: UIWebView, request: NSURLRequest, type: number): boolean

Parameters:

NameTypeDescription
webViewUIWebView发起回调的 WebView。
requestNSURLRequest即将加载的请求。
typenumber导航类型(如链接点击、表单提交等)。

Return Value:

  • boolean: 返回 true 允许加载,false 阻止加载。

Usage: 可在此拦截自定义 URL Scheme(如 marginnote://...),解析后执行插件逻辑并 return false,实现 WebView 内 JS → 插件 的通信。

当前运行时未额外暴露 UIWebView 的类成员。

头文件 API 清单

正在加载…

协议:,来源: