From 49885b36b60ab621060c44b089787e892c751902 Mon Sep 17 00:00:00 2001 From: bianxinbo Date: Mon, 29 May 2023 12:12:37 +0800 Subject: [PATCH] api_new2 Signed-off-by: bianxinbo --- .../src/main/ets/MainAbility/pages/web.ets | 42 +++++++++++++++++++ .../src/main/ets/test/WebJsunit.test.ets | 23 +++++++++- .../entry/src/main/resources/rawfile/index.js | 21 ++++++---- 3 files changed, 76 insertions(+), 10 deletions(-) diff --git a/arkui/ace_ets_web_dev_three/entry/src/main/ets/MainAbility/pages/web.ets b/arkui/ace_ets_web_dev_three/entry/src/main/ets/MainAbility/pages/web.ets index aecd4c453..79afd9a91 100644 --- a/arkui/ace_ets_web_dev_three/entry/src/main/ets/MainAbility/pages/web.ets +++ b/arkui/ace_ets_web_dev_three/entry/src/main/ets/MainAbility/pages/web.ets @@ -818,6 +818,44 @@ struct Index { } break; } + case "emitWebMessExtSetError":{ + try { + console.log("URL Error"); + throw new URIError("URI seq") + } + catch (e) { + console.log("hwd URIError:"+(e instanceof SyntaxError)); + console.log("hwd URIError:"+e.message); + console.log("hwd URIError:"+e.name); + if (this.nativePort) { + setTimeout(()=>{ + var message =new web_webview.WebMessageExt(); + message.setType(web_webview.WebMessageType.ERROR) + this.message.setError(e); + this.nativePort.postMessageEventExt(message); + },2000) + } + } + setTimeout(()=>{ + this.controller.runJavaScript("postErrorToHtml()",(error, result) => { + console.log(`The emitWebMessExtSetError() return value is: ${result}`); + Utils.emitEvent(result,515) + }) + },3000) + break; + } + case "emitWebMessExtGetError":{ + try { + this.controller.loadUrl($rawfile('webMessageExt.html')); + this.controller.runJavaScript("postErrorToApp()",(error, result) => { + console.log(`The emitWebMessExtGetError() return value is: ${result}`); + }) + } + catch (error) { + console.log("In eTS side send message catch error:" + error.code + ", msg:" + error.message); + } + break; + } @@ -993,6 +1031,10 @@ struct Index { this.msg1 = "result getArrayBuffer byteLength:" + ((result.getArrayBuffer().byteLength)); Utils.emitEvent(this.msg1,514) } + if(this.type == web_webview.WebMessageType.ERROR){ + this.msg1 = "result type:" + typeof (result.getError()); + Utils.emitEvent(this.msg1,516) + } } catch (resError) { console.log(`log error code: ${resError.code}, Message: ${resError.message}`); diff --git a/arkui/ace_ets_web_dev_three/entry/src/main/ets/test/WebJsunit.test.ets b/arkui/ace_ets_web_dev_three/entry/src/main/ets/test/WebJsunit.test.ets index 20b680213..292092036 100644 --- a/arkui/ace_ets_web_dev_three/entry/src/main/ets/test/WebJsunit.test.ets +++ b/arkui/ace_ets_web_dev_three/entry/src/main/ets/test/WebJsunit.test.ets @@ -581,9 +581,30 @@ export default function webJsunit() { *tc.desic Save current page */ it('WebMessExtGetArrayBuffer',0,async function(done){ - emitKey="emitWebMessExtGetArrayBuffer"; + emitKey="emitWebMessExtSetError"; Utils.registerEvent("WebMessExtGetArrayBuffer","result getArrayBuffer byteLength:8",514,done); sendEventByKey('webcomponent',10,''); }) + /* + *tc.number SUB_ACE_BASIC_ETS_API_054 + *tc.name WebMessExtSetError + *tc.desic Save current page + */ + it('WebMessExtSetError',0,async function(done){ + emitKey="emitWebMessExtGetError"; + var result="Error:SyntaxError, msg:" + Utils.registerEvent("WebMessExtSetError",JSON.stringify(result),515,done); + sendEventByKey('webcomponent',10,''); + }) + /* + *tc.number SUB_ACE_BASIC_ETS_API_055 + *tc.name WebMessExtGetError + *tc.desic Save current page + */ + it('WebMessExtGetError',0,async function(done){ + emitKey="emitWebMessExtGetError"; + Utils.registerEvent("WebMessExtGetError","result type:object",516,done); + sendEventByKey('webcomponent',10,''); + }) }) } diff --git a/arkui/ace_ets_web_dev_three/entry/src/main/resources/rawfile/index.js b/arkui/ace_ets_web_dev_three/entry/src/main/resources/rawfile/index.js index ace78d4e3..7e8694c44 100644 --- a/arkui/ace_ets_web_dev_three/entry/src/main/resources/rawfile/index.js +++ b/arkui/ace_ets_web_dev_three/entry/src/main/resources/rawfile/index.js @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Huawei Device Co., Ltd. + * Copyright (c) 2021~2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -113,13 +113,16 @@ function postArrayBufferToApp() { } } function postErrorToApp() { - if (h5Port) { - console.log("In html send error message"); - let err = {name:"cuowu",message:"cuowu"}; - h5Port.postMessage(err); - console.log("In html send error message end"); - } else { - console.error("In html h5port is null, please init first"); + try { + throw new URIError("URI seq 0222") + } + catch (e){ + console.log("hwd URIError:"+(e instanceof SyntaxError)); + console.log("hwd URIError:"+e.message); + console.log("hwd URIError:"+e.name); + if (h5Port) { + h5Port.postMessage(e); + } } } @@ -147,4 +150,4 @@ function postArrayBufferToHtml() { function postErrorToHtml() { var a=document.getElementById("msg2").innerText return a -} \ No newline at end of file +} -- GitLab