HarmonyOS API:基础组件

joytrian
发布于 2023-3-24 16:46
浏览
0收藏

版本: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

​WebviewController​

-

新建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开始不再维护,建议使用​​WebviewController​9+代替。

创建对象

webController: WebController = new WebController()

requestFocus(deprecated)

requestFocus()

使当前web页面获取焦点。

从API version 9开始不再维护,建议使用​​requestFocus​9+代替。

示例:

// 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开始不再维护,建议使用​​accessBackward​9+代替。

返回值:

类型

说明

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开始不再维护,建议使用​​accessForward​9+代替。

返回值:

类型

说明

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开始不再维护,建议使用​​accessStep​9+代替。

参数:

参数名

参数类型

必填

默认值

参数描述

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开始不再维护,建议使用​​backward​9+代替。

示例:

// 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开始不再维护,建议使用​​forward​9+代替。

示例:

// 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开始不再维护,建议使用​​deleteJavaScriptRegister​9+代替。

参数:

参数名

参数类型

必填

默认值

参数描述

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开始不再维护,建议使用​​getHitTest​9+代替。

返回值:

类型

说明

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开始不再维护,建议使用​​loadData​9+代替。

参数:

参数名

参数类型

必填

默认值

参数描述

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开始不再维护,建议使用​​loadUrl​9+代替。

参数:

参数名

参数类型

必填

默认值

参数描述

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开始不再维护,建议使用​​onActive​9+代替。

示例:

// 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开始不再维护,建议使用​​onInactive​9+代替。

示例:

// 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开始不再维护,建议使用​​zoom​9+代替。

参数:

参数名

参数类型

必填

参数描述

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开始不再维护,建议使用​​refresh​9+代替。

示例:

// 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开始不再维护,建议使用​​registerJavaScriptProxy​9+代替。

参数:

参数名

参数类型

必填

默认值

参数描述

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开始不再维护,建议使用​​runJavaScript​9+代替。

参数:

参数名

参数类型

必填

默认值

参数描述

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开始不再维护,建议使用​​stop​9+代替。

示例:

// 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开始不再维护,建议使用​​clearHistory​9+代替。

示例:

// 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

可编辑的区域。

Email

电子邮件地址。

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

​XComponentcontroller​

给组件绑定一个控制器,通过控制器调用组件方法,仅XComponent类型为"Surface"时有效。

说明

type为"component"时,XComponent作为容器,子组件沿垂直方向布局:

所有的事件响应均不支持。

布局方式更改和事件响应均可通过挂载子组件来设置。

内部所写的非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})
  }
}


文章转载自:https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-basic-components-web-0000001477981205-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001477981205__创建对象


已于2023-3-24 16:46:13修改
收藏
回复
举报
回复
    相关推荐