Skip to content

MNWebview

MNWebview是用于管理网页容器的对象,提供网页加载、脚本执行、界面属性控制和通信等功能,创建和管理网页视图。

new MNWebview(frame: CGRect)

构造一个新的MNWebview实例。

参数名类型必填说明
frameCGRect初始位置与尺寸。

无。

static loadFile(webview: UIWebView,file: string,baseURL: string): void

把本地文件加载到指定webview并设置可读目录范围。file不在baseURL授权目录内时资源引用会失败。

参数名类型必填说明
webviewUIWebView目标网页视图。
filestring本地文件绝对路径。
baseURLstring本地目录绝对路径,作为读权限范围。
  • 类型:void
  • 语义:提交文件加载请求后立即返回,加载结果通过webview回调观察。
static loadHTML(webview: UIWebView,html: string,baseURL: string): void

把HTML字符串写入指定webview并按baseURL解析相对资源。baseURL无效时页面可显示但相对资源可能无法加载。

参数名类型必填说明
webviewUIWebView目标网页视图。
htmlstring要渲染的HTML内容。
baseURLstring相对路径解析基准,最终会被转换为NSURL
  • 类型:void
  • 语义:提交HTML加载请求后立即返回,不同步等待页面资源加载完成。
static loadPDF(webview: UIWebView,path: string): void

读取本地PDF并在指定webview中渲染。path不存在或不可读时页面不会得到有效内容。

参数名类型必填说明
webviewUIWebView目标网页视图。
pathstring本地PDF绝对路径。
  • 类型:void
  • 语义:提交PDF加载请求后立即返回,渲染失败不会通过返回值体现。
static loadRequest(webview: UIWebView,url: string,desktop?: boolean): void

加载网络地址并可选切换UA。desktoptrue时使用桌面Safari UA,false时使用iPhone UA,不传时保持当前UA。

参数名类型必填说明
webviewUIWebView目标网页视图。
urlstring要访问的URL。
desktopboolean是否切换到桌面UA。
  • 类型:void
  • 语义:提交网络请求后立即返回,页面最终状态由webview加载回调决定。
static isNSNull(obj: object): boolean

判断脚本返回值是否是NSNull。这个方法主要给runJavaScript做结果归一化。

参数名类型必填说明
objobject待判断对象。
  • 类型:boolean
  • 语义:是NSNull实例返回true,否则返回false
static setWebMode(webview: UIWebView,desktop?: boolean): void

只切换customUserAgent,不触发页面跳转。通常配合loadRequest在下次请求前设置访问模式。

参数名类型必填说明
webviewUIWebView目标网页视图。
desktopbooleantrue设为桌面UA,false设为移动UA。
  • 类型:void
  • 语义:UA字段写入后立即返回,不会自动触发页面重载。
字段名类型说明
backgroundColorstring|UIColor设置网页背景色。传string时会走MNUtil.hexColor转换,传UIColor时直接写入。
layerCALayer读取网页视图的图层。
borderColorstring|UIColor设置边框颜色。行为与backgroundColor一致,字符串会先转换为颜色对象。
borderWidthnumber设置或读取边框宽度,单位与UIWebView.layer一致。
cornerRadiusnumber设置或读取圆角半径,直接写入webview.layer.cornerRadius
masksToBoundsboolean设置或读取子内容是否按圆角边界裁切。
hiddenboolean设置或读取视图显示状态。
scalesPageToFitboolean控制网页是否按视图自动缩放。
autoresizingMasknumber设置自动布局掩码,直接透传给webview.autoresizingMask
frameCGRect设置或读取整体位置与尺寸。
heightnumber设置或读取高度。
widthnumber设置或读取宽度。
sizenumber设置或读取尺寸。
xnumber设置或读取x坐标。
ynumber设置或读取y坐标。
delegateUIWebViewDelegate设置或读取网页代理对象,拦截加载回调事件。
webModeboolean设置或读取访问模式。true偏桌面UA,false偏移动UA。
desktopbooleanwebMode的别名,设置或读取访问模式。
customUserAgentstring设置或读取用户代理字符串。
UAstringcustomUserAgent的别名,设置或读取用户代理字符串。
currentURLstring读取当前页面URL字符串。
windowUIWindow|undefined读取UIWebView所在窗口。
scrollViewUIScrollView读取网页视图的滚动视图。
contentOffset{x:number,y:number}设置或读取滚动偏移量。
canGoForwardboolean判断当前是否可前进到下一条历史记录。
endEditing(): void

结束当前webview中的编辑状态并收起输入焦点。该方法不改变页面内容,仅影响输入交互状态。

无。

  • 类型:void
  • 语义:结束编辑并收起键盘后立即返回,不改变页面DOM内容。
addSubview(view: UIView): void

向网页视图追加子视图,比如覆盖按钮或浮层。

参数名类型必填说明
viewUIView要挂载的子视图。
  • 类型:void
  • 语义:子视图加入当前webview后立即返回,不返回层级位置。
removeFromSuperview(): void

把当前webview从父视图树中移除。移除后视图仍可复用,但不会继续显示在原界面。

无。

  • 类型:void
  • 语义:webview从父视图移除后立即返回,可后续再次挂载复用。
loadRequest(request: NSURLRequest): void

按NSURLRequest对象发起页面加载。请求头、方法和body完全以传入request为准。

参数名类型必填说明
requestNSURLRequest预先构造好的请求对象。
  • 类型:void
  • 语义:请求提交后立即返回,响应结果通过webview加载流程处理。
loadURL(url: string,desktop: boolean): void

按URL字符串发起加载,并通过desktop决定是否同步切换UA。

参数名类型必填说明
urlstring要访问的URL。
desktopbooleantrue桌面UA,false移动UA。
  • 类型:void
  • 语义:URL加载触发后立即返回,不同步等待请求完成。
loadPDF(path: string): void

在当前实例上加载本地PDF文件。path无效时不会得到可见PDF页面。

参数名类型必填说明
pathstring本地PDF绝对路径。
  • 类型:void
  • 语义:PDF加载触发后立即返回,错误状态需通过页面表现或回调判断。
loadFile(file: string,baseURL: string): void

加载本地HTML文件并声明可读目录。此实例方法和静态loadFile行为一致。

参数名类型必填说明
filestring本地文件绝对路径。
baseURLstring本地可读目录路径。
  • 类型:void
  • 语义:本地文件加载触发后立即返回,资源解析结果依赖baseURL权限范围。
goBack(): void

导航到历史上一页。

无。

  • 类型:void
  • 语义:触发回退导航后立即返回,无法回退时页面状态保持不变。
goForward(): void

导航到历史下一页。

无。

  • 类型:void
  • 语义:触发前进导航后立即返回,无法前进时页面状态保持不变。
reload(): void

刷新当前页面。

无。

  • 类型:void
  • 语义:触发当前页面重新加载后立即返回。
stopLoading(): void

中断当前加载流程。

无。

  • 类型:void
  • 语义:当前加载流程被请求中断后立即返回。
evaluateJavaScript(script: string): void

向页面注入脚本并执行。这个实例方法不返回Promise,也不暴露回调结果。

参数名类型必填说明
scriptstring要执行的JavaScript代码。
  • 类型:void
  • 语义:脚本提交执行后立即返回,不直接暴露脚本返回值。
runJavaScript(script: string): Promise<object|string|number|boolean|undefined>
static runJavaScript(webview: UIWebView,script: string): Promise<object|string|number|boolean|undefined>
  • resultNSNull时转换成undefined
  • webview为空时直接resolve(undefined)
  • 执行异常时记录MNUtil.addErrorLog(error,'MNWebview.runJavaScript')resolve(undefined)
参数名类型必填说明
webviewUIWebView仅静态方法需要。
scriptstring要执行的JavaScript代码。
  • 类型:Promise<object|string|number|boolean|undefined>
  • 语义:Promise resolve为脚本结果;脚本返回NSNull或执行失败时为undefined
canGoBack(): boolean

判断当前是否可回退到上一条历史记录。

无。

  • 类型:boolean
  • 语义:存在上一条历史记录时返回true,否则返回false
loadHTML(html: string,baseURL: string): void

在当前实例上加载HTML字符串并设置资源基准地址。baseURL只影响相对路径解析,不会自动下载远程依赖。

参数名类型必填说明
htmlstring要渲染的HTML内容。
baseURLstring相对资源解析基准地址。
  • 类型:void
  • 语义:HTML加载触发后立即返回,实际渲染结果需通过页面状态确认。
async blur(): Promise<void>

使网页视图失去焦点。

  • 类型:Promise<void>
  • 语义:Promise完成表示失焦脚本已提交,不返回额外数据。
async getCurrentWebInfo(): Promise<{url: string,title: string,hasVideo: boolean,videoTime?: number,desktop?: boolean,urlConfig?: object}|undefined>

获取当前网页信息。

  • 类型:Promise<{url: string,title: string,hasVideo: boolean,videoTime?: number,desktop?: boolean,urlConfig?: object}|undefined>
  • 语义:成功返回当前网页信息对象,无法获取时返回undefined
async getSelectedTextInWebview(): Promise<string|undefined>

获取网页中选中的文本。

  • 类型:Promise<string|undefined>
  • 语义:有选区时返回选中文本,无选区或读取失败返回undefined
async getTextInWebview(): Promise<string|undefined>

获取网页中的所有文本。

  • 类型:Promise<string|undefined>
  • 语义:成功返回页面文本内容,读取失败时返回undefined
async takeSnapshotWithWidth(width: number): Promise<NSData>

按指定宽度拍摄网页快照。

参数名类型必填说明
widthnumber快照宽度。
  • 类型:Promise<NSData>
  • 语义:返回指定宽度下生成的网页快照NSData数据。
async screenshot(width: number): Promise<NSData>

拍摄网页截图。

参数名类型必填说明
widthnumber截图宽度。
  • 类型:Promise<NSData>
  • 语义:返回截图NSData数据,宽度由入参控制。
static async runJavaScript(webview: UIWebView,script: string): Promise<object|string|number|boolean|undefined>

在指定网页视图中执行JavaScript代码。

参数名类型必填说明
webviewUIWebView网页视图对象。
scriptstring要执行的JavaScript代码。
  • 类型:Promise<object|string|number|boolean|undefined>
  • 语义:Promise resolve为脚本结果;webview为空或执行失败时返回undefined
static async blur(webview: UIWebView): Promise<void>

使指定网页视图失去焦点。

参数名类型必填说明
webviewUIWebView网页视图对象。
  • 类型:Promise<void>
  • 语义:Promise完成表示失焦操作已提交,不返回额外数据。
头文件 API 清单

正在加载…

协议:,来源: