diff --git a/zh-cn/application-dev/reference/apis/js-apis-webview.md b/zh-cn/application-dev/reference/apis/js-apis-webview.md index 48095aedd8d745ad631a239af57d794c8abea861..42c623b555c08458bde13277734de9b36aa77a3f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-webview.md +++ b/zh-cn/application-dev/reference/apis/js-apis-webview.md @@ -214,6 +214,236 @@ struct WebComponent { } ``` +### isExtentionType10+ + +**系统能力:** SystemCapability.Web.Webview.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------ | ------ | ---- | ---- | ------------------------------------------------| +| isExtentionType | boolean | 是 | 否 | 创建WebMessagePort时是否指定使用扩展增强接口。 | + +### postMessageEventExt10+ + +postMessageEventExt(message: WebMessageExt): void + +发送消息。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------ | ---- | :------------- | +| message | [WebMessageExt](#webmessageext) | 是 | 要发送的消息。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100010 | Can not post message using this port. | + + +### onMessageEventExt10+ + +onMessageEventExt(callback: (result: WebMessageExt) => void): void + +注册回调函数,接收HTML5侧发送过来的消息。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | :------------------- | +| result | [WebMessageExt](#webmessageext) | 是 | 接收到的消息。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------------- | +| 17100006 | Can not register message event using this port. | + +**示例:** + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview' + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + ports: web_webview.WebMessagePort[] = null; + nativePort: web_webview.WebMessagePort = null; + @State msg1:string = ""; + @State msg2:string = ""; + message: web_webview.WebMessageExt = new web_webview.WebMessageExt(); + build() { + Column() { + Text(this.msg1).fontSize(16) + Text(this.msg2).fontSize(16) + Button('SendToH5') + .onClick(() => { + // use the native port to send message to html5 + try { + console.log("In eTS side send true start"); + if (this.nativePort) { + this.message.setString("helloFromEts"); + this.nativePort.postMessageEventExt(this.message); + } + } + catch (error) { + console.log("In eTS side send message catch error:" + error.code + ", msg:" + error.message); + } + }) + + Web({ src: $rawfile('index.html'), controller: this.controller }) + .onPageEnd((e)=>{ + console.log("In eTS side message onPageEnd init mesaage channel"); + // 1. create web message ports + this.ports = this.controller.createWebMessagePorts(true); + // 2. send the other one to h5 + this.controller.postMessage("__init_channel_2__", [this.ports[1]], "*"); + // 3. keep one for ourself + this.nativePort = this.ports[0]; + // 4. set on message function + this.nativePort.onMessageEventExt((result) => { + console.log("In eTS side got message"); + try { + var type = result.getType(); + console.log("In eTS side getType:" + type); + switch (type) { + case web_webview.WebMessageType.STRING: { + this.msg1 = "result type:" + typeof (result.getString()); + this.msg2 = "result getString:" + ((result.getString())); + break; + } + case web_webview.WebMessageType.NUMBER: { + this.msg1 = "result type:" + typeof (result.getNumber()); + this.msg2 = "result getNumber:" + ((result.getNumber())); + break; + } + case web_webview.WebMessageType.BOOLEAN: { + this.msg1 = "result type:" + typeof (result.getBoolean()); + this.msg2 = "result getBoolean:" + ((result.getBoolean())); + break; + } + case web_webview.WebMessageType.ARRAY_BUFFER: { + this.msg1 = "result type:" + typeof (result.getArrayBuffer()); + this.msg2 = "result getArrayBuffer byteLength:" + ((result.getArrayBuffer().byteLength)); + break; + } + case web_webview.WebMessageType.ARRAY: { + this.msg1 = "result type:" + typeof (result.getArray()); + this.msg2 = "result getArray:" + result.getArray(); + break; + } + case web_webview.WebMessageType.ERROR: { + this.msg1 = "result type:" + typeof (result.getError()); + this.msg2 = "result getError:" + result.getError(); + break; + } + default: { + this.msg1 = "default break, type:" + type; + break; + break; + } + } + } + catch (resError) { + console.log(`log error code: ${resError.code}, Message: ${resError.message}`); + } + }); + }) + } + } +} + +//index.html + + + + WebView MessagePort Demo + + + +

Html5 Send and Receive Message

+

Receive string:

+

Receive arraybuffer:

+
+
+
+ + + + +//index.js +var h5Port; +window.addEventListener('message', function(event) { + if (event.data == '__init_channel_2__') { + if(event.ports[0] != null) { + h5Port = event.ports[0]; // 1. 保存从ets侧发送过来的端口 + h5Port.onmessage = function(event) { + console.log("hwd In html got message"); + // 2. 接收ets侧发送过来的消息. + var result = event.data; + console.log("In html got message, typeof: ", typeof(result)); + console.log("In html got message, result: ", (result)); + if (typeof(result) == "string") { + console.log("In html got message, String: ", result); + document.getElementById("msg").innerHTML = "String:" + result; + } else if (typeof(result) == "number") { + console.log("In html side got message, number: ", result); + document.getElementById("msg").innerHTML = "Number:" + result; + } else if (typeof(result) == "boolean") { + console.log("In html side got message, boolean: ", result); + document.getElementById("msg").innerHTML = "Boolean:" + result; + } else if (typeof(result) == "object") { + if (result instanceof ArrayBuffer) { + document.getElementById("msg2").innerHTML = "ArrayBuffer:" + result.byteLength; + console.log("In html got message, byteLength: ", result.byteLength); + } else if (result instanceof Error) { + console.log("In html error message, err:" + (result)); + console.log("In html error message, typeof err:" + typeof(result)); + document.getElementById("msg2").innerHTML = "Error:" + result.name + ", msg:" + result.message; + } else if (result instanceof Array) { + console.log("In html got message, Array"); + console.log("In html got message, Array length:" + result.length); + console.log("In html got message, Array[0]:" + (result[0])); + console.log("In html got message, typeof Array[0]:" + typeof(result[0])); + document.getElementById("msg2").innerHTML = "Array len:" + result.length + ", value:" + result; + } else { + console.log("In html got message, not any instance of support type"); + document.getElementById("msg").innerHTML = "not any instance of support type"; + } + } else { + console.log("In html got message, not support type"); + document.getElementById("msg").innerHTML = "not support type"; + } + } + h5Port.onmessageerror = (event) => { + console.error(`hwd In html Error receiving message: ${event}`); + }; + } + } +}) + +// 使用h5Port往ets侧发送String类型的消息. +function postStringToApp() { + if (h5Port) { + console.log("In html send string message"); + h5Port.postMessage("hello"); + console.log("In html send string message end"); + } else { + console.error("In html h5port is null, please init first"); + } +} +``` + ## WebviewController 通过WebviewController可以控制Web组件各种行为。一个WebviewController对象只能控制一个Web组件,且必须在Web组件和WebviewController绑定后,才能调用WebviewController上的方法(静态方法除外)。 @@ -1232,6 +1462,232 @@ struct WebComponent { } ``` + +### runJavaScriptExt10+ + +runJavaScriptExt(script: string, callback : AsyncCallback\): void + +异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScriptExt需要在loadUrl完成后,比如onPageEnd中调用。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| script | string | 是 | JavaScript脚本。 | +| callback | AsyncCallback\<[JsMessageExt](#jsmessageext10)\> | 是 | 回调执行JavaScript脚本结果。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web compoent. | + +**示例:** + +```ts +import web_webview from '@ohos.web.webview' + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + @State msg1: string = '' + @State msg2: string = '' + + build() { + Column() { + Text(this.msg1).fontSize(20) + Text(this.msg2).fontSize(20) + Web({ src: $rawfile('index.html'), controller: this.controller }) + .javaScriptAccess(true) + .onPageEnd(e => { + try { + this.controller.runJavaScriptExt( + 'test()', + (error, result) => { + if (error) { + console.info(`run JavaScript error: ` + JSON.stringify(error)) + return; + } + if (result) { + try { + var type = result.getType(); + switch (type) { + case web_webview.JsMessageType.STRING: { + this.msg1 = "result type:" + typeof (result.getString()); + this.msg2 = "result getString:" + ((result.getString())); + break; + } + case web_webview.JsMessageType.NUMBER: { + this.msg1 = "result type:" + typeof (result.getNumber()); + this.msg2 = "result getNumber:" + ((result.getNumber())); + break; + } + case web_webview.JsMessageType.BOOLEAN: { + this.msg1 = "result type:" + typeof (result.getBoolean()); + this.msg2 = "result getBoolean:" + ((result.getBoolean())); + break; + } + case web_webview.JsMessageType.ARRAY_BUFFER: { + this.msg1 = "result type:" + typeof (result.getArrayBuffer()); + this.msg2 = "result getArrayBuffer byteLength:" + ((result.getArrayBuffer().byteLength)); + break; + } + case web_webview.JsMessageType.ARRAY: { + this.msg1 = "result type:" + typeof (result.getArray()); + this.msg2 = "result getArray:" + result.getArray(); + break; + } + default: { + this.msg1 = "default break, type:" + type; + break; + } + } + } + catch (resError) { + console.log(`log error code: ${resError.code}, Message: ${resError.message}`); + } + } + }); + console.info('url: ', e.url); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + } + } +} + +//index.html + + + +

run JavaScript Ext demo

+ + + +``` + +### runJavaScriptExt10+ + +runJavaScriptExt(script: string): Promise\ + +异步执行JavaScript脚本,并通过Promise方式返回脚本执行的结果。runJavaScriptExt需要在loadUrl完成后,比如onPageEnd中调用。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------- | ---- | ---------------- | +| script | string | 是 | JavaScript脚本。 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | --------------------------------------------------- | +| Promise\<[JsMessageExt](#jsmessageext10)> | Promise实例,返回脚本执行的结果。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web compoent. | + +**示例:** + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview' + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + @State webResult: string = ''; + @State msg1: string = '' + @State msg2: string = '' + + build() { + Column() { + Text(this.webResult).fontSize(20) + Text(this.msg1).fontSize(20) + Text(this.msg2).fontSize(20) + Web({ src: $rawfile('index.html'), controller: this.controller }) + .javaScriptAccess(true) + .onPageEnd(e => { + this.controller.runJavaScriptExt('test()') + .then((result) => { + try { + var type = result.getType(); + switch (type) { + case web_webview.JsMessageType.STRING: { + this.msg1 = "result type:" + typeof (result.getString()); + this.msg2 = "result getString:" + ((result.getString())); + break; + } + case web_webview.JsMessageType.NUMBER: { + this.msg1 = "result type:" + typeof (result.getNumber()); + this.msg2 = "result getNumber:" + ((result.getNumber())); + break; + } + case web_webview.JsMessageType.BOOLEAN: { + this.msg1 = "result type:" + typeof (result.getBoolean()); + this.msg2 = "result getBoolean:" + ((result.getBoolean())); + break; + } + case web_webview.JsMessageType.ARRAY_BUFFER: { + this.msg1 = "result type:" + typeof (result.getArrayBuffer()); + this.msg2 = "result getArrayBuffer byteLength:" + ((result.getArrayBuffer().byteLength)); + break; + } + case web_webview.JsMessageType.ARRAY: { + this.msg1 = "result type:" + typeof (result.getArray()); + this.msg2 = "result getArray:" + result.getArray(); + break; + } + default: { + this.msg1 = "default break, type:" + type; + break; + } + } + } + catch (resError) { + console.log(`log error code: ${resError.code}, Message: ${resError.message}`); + } + }) + .catch(function (error) { + console.error("error: " + error); + }) + }) + } + } +} + +//index.html + + + +

run JavaScript Ext demo

+ + + +``` + ### deleteJavaScriptRegister deleteJavaScriptRegister(name: string): void @@ -1568,12 +2024,18 @@ struct WebComponent { ### createWebMessagePorts - createWebMessagePorts(): Array\ +createWebMessagePorts(isExtentionType?: boolean): Array\ -创建Web消息端口。 +创建Web消息端口。完整示例代码参考[onMessageEventExt](#onmessageeventext10) **系统能力:** SystemCapability.Web.Webview.Core +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------- | ---- | :------------------------------| +| isExtentionType10+ | boolean | 否 | 是否使用扩展增强接口,默认false不使用。 | + **返回值:** | 类型 | 说明 | @@ -1629,8 +2091,8 @@ postMessage(name: string, ports: Array\, uri: string): void | 参数名 | 类型 | 必填 | 说明 | | ------ | ---------------------- | ---- | :------------------------------- | -| name | string | 是 | 要发送的消息,包含数据和消息端口。 | -| ports | Array\ | 是 | 接收该消息的URI。 | +| name | string | 是 | 要发送的消息名称。 | +| ports | Array\ | 是 | 要发送的消息端口。 | | uri | string | 是 | 接收该消息的URI。 | **错误码:** @@ -5123,6 +5585,463 @@ Web组件返回的请求/响应头对象。 | string | 字符串类型数据。 | | ArrayBuffer | 二进制类型数据。 | +## JsMessageType10+ + +[runJavaScirptExt](#runjavascriptext10)接口脚本执行后返回的结果的类型。 + +**系统能力:** SystemCapability.Web.Webview.Core + +| 名称 | 值 | 说明 | +| ------------ | -- |--------------------------------- | +| NOT_SUPPORT | 0 |不支持的数据类型。| +| STRING | 1 |字符串类型。| +| NUMBER | 2 |数值类型。| +| BOOLEAN | 3 |布尔类型。| +| ARRAY_BUFFER | 4 |原始二进制数据缓冲区。| +| ARRAY | 5 |数组类型| + + +## WebMessageType10+ + +[webMessagePort](#webmessageport)接口所支持的数据类型。 + +**系统能力:** SystemCapability.Web.Webview.Core + +| 名称 | 值 | 说明 | +| ------------ | -- |------------------------------- | +| NOT_SUPPORT | 0 |不支持的数据类型。| +| STRING | 1 |字符串类型。| +| NUMBER | 2 |数值类型。| +| BOOLEAN | 3 |布尔类型。| +| ARRAY_BUFFER | 4 |原始二进制数据缓冲区。| +| ARRAY | 5 |数组类型。| +| ERROR | 6 |错误类型。| + +## JsMessageExt10+ + +[runJavaScirptExt](#runjavascriptext10)接口执行脚本返回的数据对象。 + +### getType10+ + +getType(): JsMessageType + +获取数据对象的类型。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| --------------------------------------------------------- | +| [JsMessageType](#jsmessagetype10) | [runJavaScirptExt](#runjavascriptext10)接口脚本执行后返回的结果的类型。 | + +### getString10+ + +getString(): string + +获取数据对象的字符串类型数据。完整示例代码参考[runJavaScriptExt](#runjavascriptext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| string | 返回字符串类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the result. | + + +### getNumber10+ + +getNumber(): number + +获取数据对象的数值类型数据。完整示例代码参考[runJavaScriptExt](#runjavascriptext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| number | 返回数值类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the result. | + +### getBoolean10+ + +getBoolean(): boolean + +获取数据对象的布尔类型数据。完整示例代码参考[runJavaScriptExt](#runjavascriptext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| boolean | 返回布尔类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the result. | + + +### getArrayBuffer10+ + +getArrayBuffer(): ArrayBuffer + +获取数据对象的原始二进制数据。完整示例代码参考[runJavaScriptExt](#runjavascriptext10) +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| ArrayBuffer | 返回原始二进制数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the result. | + +### getArray10+ + +getArray(): Array\ + +获取数据对象的数组类型数据。完整示例代码参考[runJavaScriptExt](#runjavascriptext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| Array\ | 返回数组类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the result. | + + +## WebMessageExt10+ + +[webMessagePort](#webmessageport)接口接收、发送的的数据对象。 + +### getType10+ + +getType(): WebMessageType + +获取数据对象的类型。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| --------------------------------------------------------- | +| [WebMessageType](#webmessagetype10) | [webMessagePort](#webmessageport)接口所支持的数据类型。 | + + +### getString10+ + +getString(): string + +获取数据对象的字符串类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| string | 返回字符串类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + + +### getNumber10+ + +getNumber(): number + +获取数据对象的数值类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| number | 返回数值类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + + +### getBoolean10+ + +getBoolean(): boolean + +获取数据对象的布尔类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| boolean | 返回布尔类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + + +### getArrayBuffer10+ + +getArrayBuffer(): ArrayBuffer + +获取数据对象的原始二进制数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| ArrayBuffer | 返回原始二进制数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### getArray10+ + +getArray(): Array\ + +获取数据对象的数组类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| Array\ | 返回数组类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### getError10+ + +getError(): Error + +获取数据对象的错误类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| --------------| ------------- | +| Error | 返回错误对象类型的数据。 | + +**错误码:** + +以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + + +### setType10+ + +setType(type: WebMessageType): void + +设置数据对象的类型。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------- | +| type | [WebMessageType](#webmessagetype10) | 是 | [webMessagePort](#webmessageport)接口所支持的数据类型。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### setString10+ + +setString(message: string): void + +设置数据对象的字符串类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------- | +| message | string | 是 | 字符串类型数据。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### setNumber10+ + +setNumber(message: number): void + +设置数据对象的数值类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------- | +| message | number | 是 | 数值类型数据。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### setBoolean10+ + +setBoolean(message: boolean): void + +设置数据对象的布尔类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------- | +| message | boolean | 是 | 布尔类型数据。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### setArrayBuffer10+ + +setArrayBuffer(message: ArrayBuffer): void + +设置数据对象的原始二进制数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------- | +| message | ArrayBuffer | 是 | 原始二进制类型数据。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### setArray10+ + +setArray(message: Array\): void + +设置数据对象的数组类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------- | +| message | Array\ | 是 | 数组类型数据。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + +### setError10+ + +setError(message: Error): void + +设置数据对象的错误对象类型数据。完整示例代码参考[onMessageEventExt](#onmessageeventext10) + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------- | +| message | Error | 是 | 错误对象类型数据。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------- | +| 17100014 | The type does not match with the value of the web message. | + + ## WebStorageOrigin 提供Web SQL数据库的使用信息。 diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-webview.md b/zh-cn/application-dev/reference/errorcodes/errorcode-webview.md index 6158032e12d0e9359550be693a66510bcb041f00..5f7b09ca0e830ac13f6cb507f5deede60309647f 100644 --- a/zh-cn/application-dev/reference/errorcodes/errorcode-webview.md +++ b/zh-cn/application-dev/reference/errorcodes/errorcode-webview.md @@ -229,3 +229,41 @@ Invalid web storage origin. 2. 如果已经使用,检查调用失败原因,如databaseAccess开发是否打开。 + +## 17100013 申请内存失败 + +**错误信息** + +New failed, out of memeory. + +**错误描述** + +申请失败,内存不足。 + +**可能原因** + +需要发送的数据过大,导致申请内存失败。 + +**处理步骤** + +检查需要发送的数据的长度。 + + +## 17100014 类型和值不匹配 + +**错误信息** + +The type does not match with the value of the message. + +**错误描述** + +消息的类型和值不匹配。 + +**可能原因** + +获取消息的值和消息本身的类型不匹配。 + +**处理步骤** + +需要根据消息的类型调用相应的接口来获取消息的值。举例:如获取到的类型是BOOLEAN,则需要调用GetBoolean接口来获取布尔值。 +