HarmonyOS API:基础组件
版本:v3.1 Beta
Web
ConsoleMessage
Web组件获取控制台信息对象。示例代码参考onConsole事件。
getLineNumber
getLineNumber(): number
获取ConsoleMessage的行数。
返回值:
类型 | 说明 |
number | 返回ConsoleMessage的行数。 |
getMessage
getMessage(): string
获取ConsoleMessage的日志信息。
返回值:
类型 | 说明 |
string | 返回ConsoleMessage的日志信息。 |
getMessageLevel
getMessageLevel(): MessageLevel
获取ConsoleMessage的信息级别。
返回值:
类型 | 说明 |
MessageLevel | 返回ConsoleMessage的信息级别。 |
getSourceId
getSourceId(): string
获取网页源文件路径和名字。
返回值:
类型 | 说明 |
string | 返回网页源文件路径和名字。 |
JsResult
Web组件返回的弹窗确认或弹窗取消功能对象。示例代码参考onAlert事件。
handleCancel
handleCancel(): void
通知Web组件用户取消弹窗操作。
handleConfirm
handleConfirm(): void
通知Web组件用户确认弹窗操作。
handlePromptConfirm9+
handlePromptConfirm(result: string): void
通知Web组件用户确认弹窗操作及对话框内容。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
result | string | 是 | - | 用户输入的对话框内容。 |
FullScreenExitHandler9+
通知开发者Web组件退出全屏。示例代码参考onFullScreenEnter事件。
exitFullScreen9+
exitFullScreen(): void
通知开发者Web组件退出全屏。
ControllerHandler9+
设置用户新建web组件的的WebviewController对象。示例代码参考onWindowNew事件。
setWebController9+
setWebController(controller: WebviewController): void
设置WebviewController对象。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
controller | 是 | - | 新建web组件的的WebviewController对象。 |
WebResourceError
web组件资源管理错误信息对象。示例代码参考onErrorReceive事件。
getErrorCode
getErrorCode(): number
获取加载资源的错误码。
返回值:
类型 | 说明 |
number | 返回加载资源的错误码。 |
getErrorInfo
getErrorInfo(): string
获取加载资源的错误信息。
返回值:
类型 | 说明 |
string | 返回加载资源的错误信息。 |
WebResourceRequest
web组件获取资源请求对象。示例代码参考onErrorReceive事件。
getRequestHeader
getResponseHeader() : Array<Header>
获取资源请求头信息。
返回值:
类型 | 说明 |
Array<Header> | 返回资源请求头信息。 |
getRequestUrl
getRequestUrl(): string
获取资源请求的URL信息。
返回值:
类型 | 说明 |
string | 返回资源请求的URL信息。 |
isMainFrame
isMainFrame(): boolean
判断资源请求是否为主frame。
返回值:
类型 | 说明 |
boolean | 返回资源请求是否为主frame。 |
isRedirect
isRedirect(): boolean
判断资源请求是否被服务端重定向。
返回值:
类型 | 说明 |
boolean | 返回资源请求是否被服务端重定向。 |
isRequestGesture
isRequestGesture(): boolean
获取资源请求是否与手势(如点击)相关联。
返回值:
类型 | 说明 |
boolean | 返回资源请求是否与手势(如点击)相关联。 |
Header
Web组件返回的请求/响应头对象。
名称 | 类型 | 描述 |
headerKey | string | 请求/响应头的key。 |
headerValue | string | 请求/响应头的value。 |
WebResourceResponse
web组件资源响应对象。示例代码参考onHttpErrorReceive事件。
getReasonMessage
getReasonMessage(): string
获取资源响应的状态码描述。
返回值:
类型 | 说明 |
string | 返回资源响应的状态码描述。 |
getResponseCode
getResponseCode(): number
获取资源响应的状态码。
返回值:
类型 | 说明 |
number | 返回资源响应的状态码。 |
getResponseData
getResponseData(): string
获取资源响应数据。
返回值:
类型 | 说明 |
string | 返回资源响应数据。 |
getResponseEncoding
getResponseEncoding(): string
获取资源响应的编码。
返回值:
类型 | 说明 |
string | 返回资源响应的编码。 |
getResponseHeader
getResponseHeader() : Array<Header>
获取资源响应头。
返回值:
类型 | 说明 |
Array<Header> | 返回资源响应头。 |
getResponseMimeType
getResponseMimeType(): string
获取资源响应的媒体(MIME)类型。
返回值:
类型 | 说明 |
string | 返回资源响应的媒体(MIME)类型。 |
setResponseData9+
setResponseData(data: string)
设置资源响应数据。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
data | string | 是 | - | 要设置的资源响应数据。 |
setResponseEncoding9+
setResponseEncoding(encoding: string)
设置资源响应的编码。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
encoding | string | 是 | - | 要设置的资源响应的编码。 |
setResponseMimeType9+
setResponseMimeType(mimeType: string)
设置资源响应的媒体(MIME)类型。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
mimeType | string | 是 | - | 要设置的资源响应的媒体(MIME)类型。 |
setReasonMessage9+
setReasonMessage(reason: string)
设置资源响应的状态码描述。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
reason | string | 是 | - | 要设置的资源响应的状态码描述。 |
setResponseHeader9+
setResponseHeader(header: Array<Header>)
设置资源响应头。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
header | Array<Header> | 是 | - | 要设置的资源响应头。 |
setResponseCode9+
setResponseCode(code: number)
设置资源响应的状态码。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
code | number | 是 | - | 要设置的资源响应的状态码。 |
FileSelectorResult9+
通知Web组件的文件选择结果。示例代码参考onShowFileSelector事件。
handleFileList9+
handleFileList(fileList: Array<string>): void
通知Web组件进行文件选择操作。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
fileList | Array<string> | 是 | - | 需要进行操作的文件列表。 |
FileSelectorParam9+
web组件获取文件对象。示例代码参考onShowFileSelector事件。
getTitle9+
getTitle(): string
获取文件选择器标题。
返回值:
类型 | 说明 |
string | 返回文件选择器标题。 |
getMode9+
getMode(): FileSelectorMode
获取文件选择器的模式。
返回值:
类型 | 说明 |
FileSelectorMode | 返回文件选择器的模式。 |
getAcceptType9+
getAcceptType(): Array<string>
获取文件过滤类型。
返回值:
类型 | 说明 |
Array<string> | 返回文件过滤类型。 |
isCapture9+
isCapture(): boolean
获取是否调用多媒体能力。
返回值:
类型 | 说明 |
boolean | 返回是否调用多媒体能力。 |
HttpAuthHandler9+
Web组件返回的http auth认证请求确认或取消和使用缓存密码认证功能对象。示例代码参考onHttpAuthRequest事件。
cancel9+
cancel(): void
通知Web组件用户取消HTTP认证操作。
confirm9+
confirm(userName: string, pwd: string): boolean
使用用户名和密码进行HTTP认证操作。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
userName | string | 是 | - | HTTP认证用户名。 |
pwd | string | 是 | - | HTTP认证密码。 |
返回值:
类型 | 说明 |
boolean | 认证成功返回true,失败返回false。 |
isHttpAuthInfoSaved9+
isHttpAuthInfoSaved(): boolean
通知Web组件用户使用服务器缓存的帐号密码认证。
返回值:
类型 | 说明 |
boolean | 存在密码认证成功返回true,其他返回false。 |
SslErrorHandler9+
Web组件返回的SSL错误通知事件用户处理功能对象。示例代码参考onSslErrorEventReceive事件。
handleCancel9+
handleCancel(): void
通知Web组件取消此请求。
handleConfirm9+
handleConfirm(): void
通知Web组件继续使用SSL证书。
ClientAuthenticationHandler9+
Web组件返回的SSL客户端证书请求事件用户处理功能对象。示例代码参考onClientAuthenticationRequest事件。
confirm9+
confirm(priKeyFile : string, certChainFile : string): void
通知Web组件使用指定的私钥和客户端证书链。
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
priKeyFile | string | 是 | 存放私钥的文件,包含路径和文件名。 |
certChainFile | string | 是 | 存放证书链的文件,包含路径和文件名。 |
cancel9+
cancel(): void
通知Web组件取消相同host和port服务器发送的客户端证书请求事件。同时,相同host和port服务器的请求,不重复上报该事件。
ignore9+
ignore(): void
通知Web组件忽略本次请求。
PermissionRequest9+
Web组件返回授权或拒绝权限功能的对象。示例代码参考onPermissionRequest事件。
deny9+
deny(): void
拒绝网页所请求的权限。
getOrigin9+
getOrigin(): string
获取网页来源。
返回值:
类型 | 说明 |
string | 当前请求权限网页的来源。 |
getAccessibleResource9+
getAccessibleResource(): Array<string>
获取网页所请求的权限资源列表,资源列表类型参考ProtectedResourceType。
返回值:
类型 | 说明 |
Array<string> | 网页所请求的权限资源列表。 |
grant9+
grant(resources: Array<string>): void
对网页访问的给定权限进行授权。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
resources | Array<string> | 是 | - | 网页所请求的权限资源列表。 |
WebContextMenuParam9+
实现长按页面元素跳出来的菜单信息。示例代码参考onContextMenuShow事件。
x9+
x(): number
弹出菜单的x坐标。
返回值:
类型 | 说明 |
number | 显示正常返回非负整数,否则返回-1。 |
y9+
y(): number
弹出菜单的y坐标。
返回值:
类型 | 说明 |
number | 显示正常返回非负整数,否则返回-1。 |
getLinkUrl9+
getLinkUrl(): string
获取链接地址。
返回值:
类型 | 说明 |
string | 如果长按位置是链接,返回经过安全检查的url链接。 |
getUnfilteredLinkUrl9+
getUnfilteredLinkUrl(): string
获取链接地址。
返回值:
类型 | 说明 |
string | 如果长按位置是链接,返回原始的url链接。 |
getSourceUrl9+
getSourceUrl(): string
获取sourceUrl链接。
返回值:
类型 | 说明 |
string | 如果选中的元素有src属性,返回src的url。 |
existsImageContents9+
existsImageContents(): boolean
是否存在图像内容。
返回值:
类型 | 说明 |
boolean | 长按位置中有图片返回true,否则返回false。 |
WebContextMenuResult9+
实现长按页面元素跳出来的菜单所执行的响应事件。示例代码参考onContextMenuShow事件。
closeContextMenu9+
closeContextMenu(): void
不执行WebContextMenuResult其他接口操作时,需要调用此接口关闭菜单。
copyImage9+
copyImage(): void
WebContextMenuParam有图片内容则复制图片。
JsGeolocation
Web组件返回授权或拒绝权限功能的对象。示例代码参考onGeolocationShow事件。
invoke
invoke(origin: string, allow: boolean, retain: boolean): void
设置网页地理位置权限状态。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
origin | string | 是 | - | 指定源的字符串索引。 |
allow | boolean | 是 | - | 设置的地理位置权限状态。 |
retain | boolean | 是 | - | 是否允许将地理位置权限状态保存到系统中。可通过GeolocationPermissions接口管理保存到系统的地理位置权限。 |
WebController(deprecated)
通过WebController可以控制Web组件各种行为。一个WebController对象只能控制一个Web组件,且必须在Web组件和WebController绑定后,才能调用WebController上的方法。
从API version 9开始不再维护,建议使用WebviewController9+代替。
创建对象
webController: WebController = new WebController()
requestFocus(deprecated)
requestFocus()
使当前web页面获取焦点。
从API version 9开始不再维护,建议使用requestFocus9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('requestFocus')
.onClick(() => {
this.controller.requestFocus()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
accessBackward(deprecated)
accessBackward(): boolean
当前页面是否可后退,即当前页面是否有返回历史记录。
从API version 9开始不再维护,建议使用accessBackward9+代替。
返回值:
类型 | 说明 |
boolean | 可以后退返回true,否则返回false。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('accessBackward')
.onClick(() => {
let result = this.controller.accessBackward()
console.log('result:' + result)
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
accessForward(deprecated)
accessForward(): boolean
当前页面是否可前进,即当前页面是否有前进历史记录。
从API version 9开始不再维护,建议使用accessForward9+代替。
返回值:
类型 | 说明 |
boolean | 可以前进返回true,否则返回false。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('accessForward')
.onClick(() => {
let result = this.controller.accessForward()
console.log('result:' + result)
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
accessStep(deprecated)
accessStep(step: number): boolean
当前页面是否可前进或者后退给定的step步。
从API version 9开始不再维护,建议使用accessStep9+代替。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 |
返回值:
类型 | 说明 |
boolean | 页面是否前进或后退 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
@State steps: number = 2
build() {
Column() {
Button('accessStep')
.onClick(() => {
let result = this.controller.accessStep(this.steps)
console.log('result:' + result)
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
backward(deprecated)
backward(): void
按照历史栈,后退一个页面。一般结合accessBackward一起使用。
从API version 9开始不再维护,建议使用backward9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('backward')
.onClick(() => {
this.controller.backward()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
forward(deprecated)
forward(): void
按照历史栈,前进一个页面。一般结合accessForward一起使用。
从API version 9开始不再维护,建议使用forward9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('forward')
.onClick(() => {
this.controller.forward()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
deleteJavaScriptRegister(deprecated)
deleteJavaScriptRegister(name: string)
删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。删除后立即生效,无须调用refresh接口。
从API version 9开始不再维护,建议使用deleteJavaScriptRegister9+代替。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
@State name: string = 'Object'
build() {
Column() {
Button('deleteJavaScriptRegister')
.onClick(() => {
this.controller.deleteJavaScriptRegister(this.name)
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
getHitTest(deprecated)
getHitTest(): HitTestType
获取当前被点击区域的元素类型。
从API version 9开始不再维护,建议使用getHitTest9+代替。
返回值:
类型 | 说明 |
HitTestType | 被点击区域的元素类型。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('getHitTest')
.onClick(() => {
let hitType = this.controller.getHitTest()
console.log("hitType: " + hitType)
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
loadData(deprecated)
loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string })
baseUrl为空时,通过”data“协议加载指定的一段字符串。
当baseUrl为”data“协议时,编码后的data字符串将被Web组件作为”data"协议加载。
当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。
从API version 9开始不再维护,建议使用loadData9+代替。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
data | string | 是 | - | 按照”Base64“或者”URL"编码后的一段字符串。 |
mimeType | string | 是 | - | 媒体类型(MIME)。 |
encoding | string | 是 | - | 编码类型,具体为“Base64"或者”URL编码。 |
baseUrl | string | 否 | - | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 |
historyUrl | string | 否 | - | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('loadData')
.onClick(() => {
this.controller.loadData({
data: "<html><body bgcolor=\"white\">Source:<pre>source</pre></body></html>",
mimeType: "text/html",
encoding: "UTF-8"
})
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
loadUrl(deprecated)
loadUrl(options: { url: string | Resource, headers?: Array<Header> })
使用指定的http头加载指定的URL。
通过loadUrl注入的对象只在当前document有效,即通过loadUrl导航到新的页面会无效。
而通过registerJavaScriptProxy注入的对象,在loadUrl导航到新的页面也会有效。
从API version 9开始不再维护,建议使用loadUrl9+代替。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
url | string | 是 | - | 需要加载的 URL。 |
headers | Array<Header> | 否 | [] | URL的附加HTTP请求头。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('loadUrl')
.onClick(() => {
this.controller.loadUrl({ url: 'www.example.com' })
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
onActive(deprecated)
onActive(): void
调用此接口通知Web组件进入前台激活状态。
从API version 9开始不再维护,建议使用onActive9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('onActive')
.onClick(() => {
this.controller.onActive()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
onInactive(deprecated)
onInactive(): void
调用此接口通知Web组件进入未激活状态。
从API version 9开始不再维护,建议使用onInactive9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('onInactive')
.onClick(() => {
this.controller.onInactive()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
zoom(deprecated)
zoom(factor: number): void
调整当前网页的缩放比例。
从API version 9开始不再维护,建议使用zoom9+代替。
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
@State factor: number = 1
build() {
Column() {
Button('zoom')
.onClick(() => {
this.controller.zoom(this.factor)
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
refresh(deprecated)
refresh()
调用此接口通知Web组件刷新网页。
从API version 9开始不再维护,建议使用refresh9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('refresh')
.onClick(() => {
this.controller.refresh()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
registerJavaScriptProxy(deprecated)
registerJavaScriptProxy(options: { object: object, name: string, methodList: Array<string> })
注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。
从API version 9开始不再维护,建议使用registerJavaScriptProxy9+代替。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
object | object | 是 | - | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean |
name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 |
methodList | Array<string> | 是 | - | 参与注册的应用侧JavaScript对象的方法。 |
示例:
// xxx.ets
@Entry
@Component
struct Index {
controller: WebController = new WebController()
testObj = {
test: (data) => {
return "ArkUI Web Component"
},
toString: () => {
console.log('Web Component toString')
}
}
build() {
Column() {
Row() {
Button('Register JavaScript To Window').onClick(() => {
this.controller.registerJavaScriptProxy({
object: this.testObj,
name: "objName",
methodList: ["test", "toString"],
})
})
}
Web({ src: $rawfile('index.html'), controller: this.controller })
.javaScriptAccess(true)
}
}
}
<!-- index.html -->
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
Hello world!
</body>
<script type="text/javascript">
function htmlTest() {
str = objName.test("test function")
console.log('objName.test result:'+ str)
}
</script>
</html>
runJavaScript(deprecated)
runJavaScript(options: { script: string, callback?: (result: string) => void })
异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。
从API version 9开始不再维护,建议使用runJavaScript9+代替。
参数:
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
script | string | 是 | - | JavaScript脚本。 |
callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 |
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
@State webResult: string = ''
build() {
Column() {
Text(this.webResult).fontSize(20)
Web({ src: $rawfile('index.html'), controller: this.controller })
.javaScriptAccess(true)
.onPageEnd(e => {
this.controller.runJavaScript({
script: 'test()',
callback: (result: string)=> {
this.webResult = result
console.info(`The test() return value is: ${result}`)
}})
console.info('url: ', e.url)
})
}
}
}
<!-- index.html -->
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
Hello world!
</body>
<script type="text/javascript">
function test() {
console.log('Ark WebComponent')
return "This value is from index.html"
}
</script>
</html>
stop(deprecated)
stop()
停止页面加载。
从API version 9开始不再维护,建议使用stop9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('stop')
.onClick(() => {
this.controller.stop()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
clearHistory(deprecated)
clearHistory(): void
删除所有前进后退记录。
从API version 9开始不再维护,建议使用clearHistory9+代替。
示例:
// xxx.ets
@Entry
@Component
struct WebComponent {
controller: WebController = new WebController()
build() {
Column() {
Button('clearHistory')
.onClick(() => {
this.controller.clearHistory()
})
Web({ src: 'www.example.com', controller: this.controller })
}
}
}
MessageLevel枚举说明
名称 | 描述 |
Debug | 调试级别。 |
Error | 错误级别。 |
Info | 消息级别。 |
Log | 日志级别。 |
Warn | 警告级别。 |
RenderExitReason枚举说明
onRenderExited接口返回的渲染进程退出的具体原因。
名称 | 描述 |
ProcessAbnormalTermination | 渲染进程异常退出。 |
ProcessWasKilled | 收到SIGKILL,或被手动终止。 |
ProcessCrashed | 渲染进程崩溃退出,如段错误。 |
ProcessOom | 程序内存不足。 |
ProcessExitUnknown | 其他原因。 |
MixedMode枚举说明
名称 | 描述 |
All | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 |
Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 |
None | 不允许加载HTTP和HTTPS混合内容。 |
CacheMode枚举说明
名称 | 描述 |
Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 |
None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 |
Online | 加载资源不使用cache,全部从网络中获取。 |
Only | 只从cache中加载资源。 |
FileSelectorMode枚举说明
名称 | 描述 |
FileOpenMode | 打开上传单个文件。 |
FileOpenMultipleMode | 打开上传多个文件。 |
FileOpenFolderMode | 打开上传文件夹模式。 |
FileSaveMode | 文件保存模式。 |
HitTestType枚举说明
名称 | 描述 |
EditText | 可编辑的区域。 |
电子邮件地址。 | |
HttpAnchor | 超链接,其src为http。 |
HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 |
Img | HTML::img标签。 |
Map | 地理地址。 |
Phone | 电话号码。 |
Unknown | 未知内容。 |
SslError9+枚举说明
onSslErrorEventReceive接口返回的SSL错误的具体原因。
名称 | 描述 |
Invalid | 一般错误。 |
HostMismatch | 主机名不匹配。 |
DateInvalid | 证书日期无效。 |
Untrusted | 证书颁发机构不受信任。 |
ProtectedResourceType9+枚举说明
名称 | 描述 | 备注 |
MidiSysex | MIDI SYSEX资源。 | 目前仅支持权限事件上报,MIDI设备的使用还未支持。 |
XComponent
更新时间: 2023-02-17 09:19
可用于EGL/OpenGLES和媒体数据写入,并显示在XComponent组件。
说明
该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
子组件
构造参数type为"Surface"时不支持。
从API version 9开始,构造参数type为"component"时可以包含子组件。
接口
XComponent(value: {id: string, type: string, libraryname?: string, controller?: XComponentController})
参数:
参数名 | 参数类型 | 必填 | 描述 |
id | string | 是 | 组件的唯一标识,支持最大的字符串长度128。 |
type | string | 是 | 用于指定XComponent组件类型,可选值为: -"Surface":用于EGL/OpenGLES和媒体数据写入,组件内容单独送显,直接合成到屏幕。 -"component"9+ :XComponent将变成一个容器组件,并可在其中执行非UI逻辑以动态加载显示内容。 |
libraryname | string | 否 | 应用Native层编译输出动态库名称,仅XComponent类型为"Surface"时有效。 |
controller | 否 | 给组件绑定一个控制器,通过控制器调用组件方法,仅XComponent类型为"Surface"时有效。 |
说明
type为"component"时,XComponent作为容器,子组件沿垂直方向布局:
- 垂直方向上对齐格式:FlexAlign.Start
- 水平方向上对齐格式:FlexAlign.Center
所有的事件响应均不支持。
布局方式更改和事件响应均可通过挂载子组件来设置。
内部所写的非UI逻辑需要封装在一个或多个函数内。
属性
- XComponent显示的内容,可由开发者自定义绘制,通用属性不支持背景设置、透明度设置和图像效果。
- type为"Surface"时建议使用EGL/OpenGLES提供的接口设置相关内容。
- type为"component"时建议使用挂载子组件的方式进行设置相关内容。
事件
仅type为"Surface"时以下事件有效。不支持通用事件和手势。
onLoad
onLoad(callback: (event?: object) => void )
插件加载完成时回调事件。
参数:
参数名 | 参数类型 | 必填 | 描述 |
event | object | 否 | 获取XComponent实例对象的context,context上挂载的方法由开发者在c++层定义。 |
onDestroy
onDestroy(event: () => void )
插件卸载完成时回调事件。
XComponentController
xcomponent 组件的控制器,可以将此对象绑定至XComponent组件,然后通过控制器来调用组件方法。
创建对象
xcomponentController: XComponentController = new XComponentController()
getXComponentSurfaceId
getXComponentSurfaceId(): string
获取XComponent对应Surface的ID,仅XComponent类型为"Surface"时有效。
返回值:
类型 | 描述 |
string | XComponent持有Surface的ID。 |
setXComponentSurfaceSize
setXComponentSurfaceSize(value: {SurfaceWidth: number, SurfaceHeight: number}): void
设置XComponent持有Surface的宽度和高度,仅XComponent类型为"Surface"时有效。
参数:
参数名 | 参数类型 | 必填 | 描述 |
SurfaceWidth | number | 是 | XComponent持有Surface的宽度。 |
SurfaceHeight | number | 是 | XComponent持有Surface的高度。 |
getXComponentContext
getXComponentContext(): Object
获取XComponent实例对象的context,仅XComponent类型为"Surface"时有效。
返回值:
类型 | 描述 |
Object | 获取XComponent实例对象的context,context包含的具体接口方法由开发者自定义。 |
示例
示例效果请以真机运行为准,当前IDE预览器不支持。
// xxx.ets
@Entry
@Component
struct PreviewArea {
private SurfaceId : string =''
xcomponentController: XComponentController = new XComponentController()
build() {
Row() {
XComponent({
id: 'xcomponent',
type: 'Surface',
controller: this.xcomponentController
})
.onLoad(() => {
this.xcomponentController.setXComponentSurfaceSize({SurfaceWidth:1920,SurfaceHeight:1080});
this.SurfaceId = this.xcomponentController.getXComponentSurfaceId()
})
.width('640px')
.height('480px')
}
.backgroundColor(Color.Black)
.position({x: 0, y: 48})
}
}