From 20d0d78687a4870ad8c3a591e5921c14385d0b6d Mon Sep 17 00:00:00 2001 From: yiqiang Date: Wed, 16 Nov 2022 15:10:06 +0800 Subject: [PATCH] fix new webview interface bug; fix delete note bug Signed-off-by: yiqiang --- .../main/ets/default/baseUtil/NoteUtil.ets | 7 +- .../main/ets/components/FolderListComp.ets | 53 ++- .../src/main/ets/components/NoteContent.ets | 202 ++++++++++-- .../main/ets/components/NoteContentComp.ets | 310 +++++++++++++++--- .../components/NoteContentCompPortrait.ets | 188 +++++++++-- .../src/main/ets/components/NoteListComp.ets | 89 ++++- .../default/src/main/ets/pages/MyNoteHome.ets | 21 +- .../src/main/ets/pages/NoteContentHome.ets | 39 ++- .../default/src/main/ets/pages/NoteHome.ets | 4 +- 9 files changed, 763 insertions(+), 150 deletions(-) diff --git a/common/utils/src/main/ets/default/baseUtil/NoteUtil.ets b/common/utils/src/main/ets/default/baseUtil/NoteUtil.ets index 1e8a24a..d1169ef 100644 --- a/common/utils/src/main/ets/default/baseUtil/NoteUtil.ets +++ b/common/utils/src/main/ets/default/baseUtil/NoteUtil.ets @@ -25,6 +25,7 @@ import {LogUtil} from './LogUtil' import FolderUtil from './FolderUtil' import RdbStoreUtil from './RdbStoreUtil' import prompt from '@system.prompt' +import web_webview from '@ohos.web.webview' const TAG = "NoteUtil" @@ -180,6 +181,10 @@ export class NoteUtil { for (let index = 0; index < allNoteDataArray.length; ) { if (allNoteDataArray[index].is_deleted == Delete.Yes && new Date().getTime() - allNoteDataArray[index].deleted_time > StyleConstants.DELETE_DEADLINE) { LogUtil.info(TAG, "Delete Note, uuid " + allNoteDataArray[index].uuid + " delete time " + allNoteDataArray[index].deleted_time) + // delete note from db + let predicates_note = RdbStoreUtil.getRdbPredicates(TableName.NoteTable) + predicates_note.equalTo(NoteTableColumn.Uuid, allNoteDataArray[index].uuid) + RdbStoreUtil.delete(predicates_note, null) allNoteDataArray.splice(index, 1); } index++ @@ -259,7 +264,7 @@ export class NoteUtil { index == -1 ? null : allNoteDataArray.splice(index, 1) } - deleteEmptyNote(selectedNoteData: NoteData, AllNoteArray: NoteData[], controllerShow: WebController): boolean { + deleteEmptyNote(selectedNoteData: NoteData, AllNoteArray: NoteData[], controllerShow: web_webview.WebviewController): boolean { if (selectedNoteData.title == "标题" && selectedNoteData.content_text == "") { // delete note from db noteUtil.removeNoteData(AllNoteArray, selectedNoteData.uuid) diff --git a/features/src/main/ets/components/FolderListComp.ets b/features/src/main/ets/components/FolderListComp.ets index 574af88..27aa86c 100644 --- a/features/src/main/ets/components/FolderListComp.ets +++ b/features/src/main/ets/components/FolderListComp.ets @@ -30,6 +30,7 @@ import RdbStoreUtil from '@ohos/utils/src/main/ets/default/baseUtil/RdbStoreUtil import FolderUtil from '@ohos/utils/src/main/ets/default/baseUtil/FolderUtil' import NoteUtil from '@ohos/utils/src/main/ets/default/baseUtil/NoteUtil' import { LogUtil } from '@ohos/utils/src/main/ets/default/baseUtil/LogUtil' +import web_webview from '@ohos.web.webview' // Folder list component @Component @@ -38,7 +39,7 @@ export struct FolderListComp { @Consume('SectionStatus') sectionStatus: number @Consume('ExpandStatus') expandStatus: boolean // 笔记本折叠展开状态 @StorageLink('breakPoint') breakPoints: string = 'lg' - controllerShow: WebController + controllerShow: web_webview.WebviewController TAG = "FolderListComp" build() { @@ -174,7 +175,7 @@ struct FolderItemComp { @Consume('Longpress') longpress: boolean @Consume('SelectedColor') selectedColor: string @Consume('PortraitModel') portraitModel: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController private isLongPress: boolean = false TAG = "FolderListComp" // Folder Edit Dialog @@ -266,9 +267,19 @@ struct FolderItemComp { } // 刷新web界面 if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(this.TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(this.TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(this.TAG, `code is ${error.code}, message is ${error.message}`) + } } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) @@ -406,9 +417,19 @@ struct FolderItemComp { } // 刷新web界面 if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(this.TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(this.TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(this.TAG, `code is ${error.code}, message is ${error.message}`) + } } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) @@ -461,9 +482,19 @@ struct FolderItemComp { } // 刷新web界面 if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(this.TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(this.TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(this.TAG, `code is ${error.code}, message is ${error.message}`) + } } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) diff --git a/features/src/main/ets/components/NoteContent.ets b/features/src/main/ets/components/NoteContent.ets index a917eef..8d51893 100644 --- a/features/src/main/ets/components/NoteContent.ets +++ b/features/src/main/ets/components/NoteContent.ets @@ -32,6 +32,7 @@ import mediaquery from '@ohos.mediaquery' import router from '@system.router'; import inputMethod from '@ohos.inputmethod'; import { folderTextMap } from '@ohos/utils/src/main/ets/default/model/NoteBaseData' +import web_webview from '@ohos.web.webview' const TAG = "NoteContent" @@ -44,7 +45,7 @@ export struct NoteContent { @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') @Provide('Issave') issave: number = 0 @Provide('EditModel') editModel: boolean = false - controllerShow: WebController + controllerShow: web_webview.WebviewController private editContentFlag = false @StorageLink('ScrollTopPercent') scrollTopPercent: number = 0.0 storeScrollTop(scrollTop: number) { @@ -61,9 +62,21 @@ export struct NoteContent { if (scrollTopPercent < 0) { return } - this.controllerShow.runJavaScript({ - script: 'document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight()*scrollTopPercent - }) + try { + this.controllerShow.runJavaScript('document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight()*scrollTopPercent, (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } + + AppStorage.Delete('remoteScrollTopPercent') } restoreFocus() { @@ -142,7 +155,19 @@ export struct NoteContent { realHtml = "file://" + filePath } LogUtil.info(TAG, 'paste info11' + realHtml) - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.insertImageHtml('" + realHtml + "')" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.insertImageHtml('" + realHtml + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } else { LogUtil.info(TAG, 'paste info22223') } @@ -171,17 +196,25 @@ export struct NoteContent { .onPageEnd((e) => { LogUtil.info(TAG, "finish loadurl") if (this.selectedNoteData) { - let self = this - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", - callback: () => { - // wait for the image in the note to load - setTimeout(function() { - self.restoreScrollTop() - self.restoreFocus() - }, 100) - } - }) + try { + let self = this + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + // wait for the image in the note to load + setTimeout(function() { + self.restoreScrollTop() + self.restoreFocus() + }, 100) + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } }) .zoomAccess(false) @@ -204,7 +237,19 @@ export struct NoteContent { } timeID = setInterval(() => { if(this.closeEditContentDialog){ - this.controllerShow.runJavaScript({ script: "scheduledSaveContent()" }) + try { + this.controllerShow.runJavaScript("scheduledSaveContent()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } }, 3000) LogUtil.info(TAG, "setInterval timeID : " + timeID) @@ -235,7 +280,7 @@ export struct ToolBarComp { @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') @Consume('Issave') issave: number @Consume('EditModel') editModel: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController editContentDialogCtl: CustomDialogController = new CustomDialogController({ builder: EditContentDialog({ confirm: this.confirm.bind(this) }), alignment: DialogAlignment.Bottom, @@ -249,7 +294,19 @@ export struct ToolBarComp { } confirm(excuteJs: string) { - this.controllerShow.runJavaScript({ script: excuteJs }) + try { + this.controllerShow.runJavaScript(excuteJs , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } build() { @@ -259,8 +316,32 @@ export struct ToolBarComp { .height(24) .width(24) .onClick(() => { - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setInputEnabled(false)" }) - this.controllerShow.runJavaScript({ script: "getHtmlContent()" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(false)", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } + try { + this.controllerShow.runJavaScript("getHtmlContent()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } // 清除定时器 if (timeID != undefined) { LogUtil.info(TAG, "zoom, clearInterval timeID : " + timeID) @@ -295,9 +376,21 @@ export struct ToolBarComp { .width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); + inputMethod.getController().stopInputSession(); // 清单 - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.setTodo()" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setTodo()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -345,9 +438,20 @@ export struct ToolBarComp { OperationUtils.copy(imageUri).then((uriPath) => { var path = "file://" + uriPath LogUtil.info(TAG, 'image uri is:' + path) - this.controllerShow.runJavaScript({ - script: "javascript:RICH_EDITOR.insertImage('" + path + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.insertImage('" + path + "')" + , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) } } @@ -365,8 +469,20 @@ export struct ToolBarComp { .width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.undo()" }) + inputMethod.getController().stopInputSession(); + try { + this.controllerShow.runJavaScript("RICH_EDITOR.undo()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -379,8 +495,20 @@ export struct ToolBarComp { .width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.redo()" }) + inputMethod.getController().stopInputSession(); + try { + this.controllerShow.runJavaScript("RICH_EDITOR.redo()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -396,7 +524,19 @@ export struct ToolBarComp { .onClick(() => { this.issave = 1 // 保存笔记信息到数据库 - this.controllerShow.runJavaScript({ script: "getHtmlContent()" }) + try { + this.controllerShow.runJavaScript("getHtmlContent()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) diff --git a/features/src/main/ets/components/NoteContentComp.ets b/features/src/main/ets/components/NoteContentComp.ets index 12ca9bc..214c523 100644 --- a/features/src/main/ets/components/NoteContentComp.ets +++ b/features/src/main/ets/components/NoteContentComp.ets @@ -30,6 +30,7 @@ import OperationUtils from '@ohos/utils/src/main/ets/default/baseUtil/OperationU import mediaquery from '@ohos.mediaquery' import inputMethod from '@ohos.inputmethod'; import { folderTextMap } from '@ohos/utils/src/main/ets/default/model/NoteBaseData' +import web_webview from '@ohos.web.webview' const TAG = "NoteContentComp" @@ -50,7 +51,7 @@ export struct NoteContentComp { @Consume('Issave') issave: number @Consume('Search') search: boolean @StorageLink('closeEditContentDialog') closeEditContentDialog: boolean = AppStorage.Link('closeEditContentDialog') - controllerShow: WebController + controllerShow: web_webview.WebviewController private editContentFlag = false @State uri1: string = "" private context = getContext(this) @@ -69,9 +70,19 @@ export struct NoteContentComp { if (scrollTopPercent < 0) { return } - this.controllerShow.runJavaScript({ - script: 'document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight()*scrollTopPercent - }) + try { + this.controllerShow.runJavaScript('document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight()*scrollTopPercent, (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } restoreFocus() { if (!AppStorage.Has('isRemoteFocusOnSearch')) { @@ -166,8 +177,19 @@ export struct NoteContentComp { realHtml = "file://" + filePath } LogUtil.info(TAG, 'paste info11-' + realHtml) - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.insertImageHtml('" + realHtml + "')" }) - LogUtil.info(TAG, 'paste info11--' + realHtml) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.insertImageHtml('" + realHtml + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } else { LogUtil.info(TAG, 'paste info22225') } @@ -205,21 +227,41 @@ export struct NoteContentComp { .onPageEnd((e) => { LogUtil.info(TAG, "finish loadurl") if(this.selectedNoteData){ - let self = this - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", - callback: () => { - // wait for the image in the note to load - setTimeout(function() { - self.restoreScrollTop() - self.restoreFocus() - }, 100) - } - }) + try { + let self = this + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + // wait for the image in the note to load + setTimeout(function() { + self.restoreScrollTop() + self.restoreFocus() + }, 100) + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } // 初次加载为为小屏预览模式 if (this.sectionStatus != 1) { - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setInputEnabled(false)" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(false)", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } }) .imageAccess(true) @@ -245,14 +287,38 @@ export struct NoteContentComp { if (this.sectionStatus != 1 || isContinue) { this.lastSectionStatus = this.sectionStatus this.sectionStatus = 1 - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setInputEnabled(true)" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(true)", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } // 添加定时器:3s自动保存 if (timeId) { clearInterval(timeId) } timeId = setInterval(() => { if(this.closeEditContentDialog){ - this.controllerShow.runJavaScript({ script: "scheduledSaveContent()" }) + try { + this.controllerShow.runJavaScript("scheduledSaveContent()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } }, 3000) LogUtil.info(TAG, "setInterval timeId : " + timeId) @@ -300,7 +366,7 @@ export struct NoteContentOverViewComp { @Consume('SectionStatus') sectionStatus: number @Consume('RefreshFlag') refreshFlag: number NoteDataMoveArray: FolderData[] - controllerShow: WebController + controllerShow: web_webview.WebviewController editTitleDialogCtl: CustomDialogController = new CustomDialogController({ builder: EditTitleDialog({ confirm: this.confirm.bind(this) }), alignment: DialogAlignment.Center, @@ -340,9 +406,20 @@ export struct NoteContentOverViewComp { RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) if (this.sectionStatus != 1) { this.selectedNoteData = NoteUtil.getFirstNoteData(this.AllNoteArray, this.selectedFolderData.uuid) - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } + this.refreshFlag = (this.refreshFlag == 0 ? 1 : 0) } else { this.selectedFolderData = FolderUtil.getFolderData(AppStorage.Get('AllFolderArray'), item.uuid) @@ -426,7 +503,7 @@ export struct ToolBarComp { @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') @Consume('EditModel') editModel: boolean @Consume('Issave') issave: number - controllerShow: WebController + controllerShow: web_webview.WebviewController private context = getContext(this) @StorageLink('closeEditContentDialog') closeEditContentDialog: boolean = AppStorage.Link('closeEditContentDialog') noteDataDeleteDialogCtl: CustomDialogController = new CustomDialogController({ @@ -453,7 +530,19 @@ export struct ToolBarComp { } this.refreshFlag = (this.refreshFlag == 0 ? 1 : 0) this.selectedNoteData = NoteUtil.getFirstNoteData(AppStorage.Get('AllNoteArray'), this.selectedFolderData.uuid) - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } this.chooseNote = false // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) @@ -474,7 +563,19 @@ export struct ToolBarComp { } confirm(excuteJs: string) { - this.controllerShow.runJavaScript({ script: excuteJs }) + try { + this.controllerShow.runJavaScript(excuteJs, (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } build() { @@ -487,17 +588,53 @@ export struct ToolBarComp { if (this.sectionStatus != 1) { this.lastSectionStatus = this.sectionStatus this.sectionStatus = 1 - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setInputEnabled(true)" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(true)", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } else { if (this.lastSectionStatus != undefined) { // 切换为小屏预览模式 - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setInputEnabled(false)" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(false)", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } this.sectionStatus = this.lastSectionStatus // 退出全屏时存库 LogUtil.info(TAG, "close note" + this.selectedNoteData.uuid) - this.controllerShow.runJavaScript({ script: "saveHtmlContent()" }) + try { + this.controllerShow.runJavaScript("saveHtmlContent()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } //退出键盘 - inputMethod.getInputMethodController().stopInput(); + inputMethod.getController().stopInputSession(); // 清除定时器 if (timeId != undefined) { LogUtil.info(TAG, "zoom, clearInterval timeId : " + timeId) @@ -550,9 +687,19 @@ export struct ToolBarComp { RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) this.selectedNoteData = NoteUtil.getFirstNoteData(AppStorage.Get('AllNoteArray'), this.selectedFolderData.uuid) - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) AppStorage.SetOrCreate('ContinueNote', continueNote) @@ -567,9 +714,22 @@ export struct ToolBarComp { .width(24) .onClick(() => { // 清单 - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.setTodo()" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setTodo()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } + // 退出键盘 - inputMethod.getInputMethodController().stopInput(); + inputMethod.getController().stopInputSession(); }) }.width(42) .height(42) @@ -618,9 +778,19 @@ export struct ToolBarComp { OperationUtils.copy(imageUri).then((uriPath) => { var path = "file://" + uriPath LogUtil.info(TAG, 'image uri is:' + path) - this.controllerShow.runJavaScript({ - script: "javascript:RICH_EDITOR.insertImage('" + path + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.insertImage('" + path + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) } } @@ -638,8 +808,20 @@ export struct ToolBarComp { .width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.undo()" }) + inputMethod.getController().stopInputSession(); + try { + this.controllerShow.runJavaScript("RICH_EDITOR.undo()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -652,8 +834,20 @@ export struct ToolBarComp { .width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.redo()" }) + inputMethod.getController().stopInputSession(); + try { + this.controllerShow.runJavaScript("RICH_EDITOR.redo()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -668,7 +862,19 @@ export struct ToolBarComp { .fillColor(this.issave == 0 ? Color.Black : Color.Grey) .onClick(() => { // 保存笔记信息到数据库 - this.controllerShow.runJavaScript({ script: "getHtmlContent()" }) + try { + this.controllerShow.runJavaScript("getHtmlContent()", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } if (this.selectedNoteData.title == "标题" && this.selectedNoteData.content_text == "") { LogUtil.info(TAG, "note is empty,save note failed") } @@ -693,9 +899,19 @@ export struct ToolBarComp { RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) if (this.selectedFolderData.uuid === SysDefFolderUuid.MyFavorites) { this.selectedNoteData = NoteUtil.getFirstNoteData(AppStorage.Get('AllNoteArray'), SysDefFolderUuid.MyFavorites) - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) AppStorage.SetOrCreate('ContinueNote', continueNote) diff --git a/features/src/main/ets/components/NoteContentCompPortrait.ets b/features/src/main/ets/components/NoteContentCompPortrait.ets index d3b0fcb..82df4df 100644 --- a/features/src/main/ets/components/NoteContentCompPortrait.ets +++ b/features/src/main/ets/components/NoteContentCompPortrait.ets @@ -31,6 +31,7 @@ import router from '@system.router' import inputMethod from '@ohos.inputmethod'; import { folderTextMap } from '@ohos/utils/src/main/ets/default/model/NoteBaseData' import rs from '@ohos.resourceManager' +import web_webview from '@ohos.web.webview' var time_id: number @@ -52,7 +53,7 @@ export struct NoteContentCompPortrait { @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') @Provide('EditModel') editModel: boolean = false @StorageLink('closeEditContentDialog') closeEditContentDialog: boolean = AppStorage.Link('closeEditContentDialog') - controllerShow: WebController + controllerShow: web_webview.WebviewController private editContentFlag = false @StorageLink('ScrollTopPercent') scrollTopPercent: number = 0.0 storeScrollTop(scrollTop: number) { @@ -69,9 +70,20 @@ export struct NoteContentCompPortrait { if (scrollTopPercent < 0) { return } - this.controllerShow.runJavaScript({ - script: 'document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight()*scrollTopPercent - }) + + try { + this.controllerShow.runJavaScript('document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight()*scrollTopPercent, (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } restoreFocus() { if (!AppStorage.Has('isRemoteFocusOnSearch')) { @@ -146,7 +158,19 @@ export struct NoteContentCompPortrait { realHtml = "file://" + filePath } LogUtil.info(TAG, 'paste info11' + realHtml) - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.insertImageHtml('" + realHtml + "')" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.insertImageHtml('" + realHtml + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } else { LogUtil.info(TAG, 'paste info22224') } @@ -172,18 +196,26 @@ export struct NoteContentCompPortrait { controller:this.controllerShow }) .onPageEnd((e) => { - LogUtil.info(TAG, "finish loadurl") - let self = this - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", - callback: () => { - // wait for the image in the note to load - setTimeout(function() { - self.restoreScrollTop() - self.restoreFocus() - }, 100) - } - }) + LogUtil. info(TAG, "finish loadurl") + try { + let self = this + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + // wait for the image in the note to load + setTimeout(function() { + self.restoreScrollTop() + self.restoreFocus() + }, 100) + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) .imageAccess(true) .onlineImageAccess(true) @@ -203,8 +235,20 @@ export struct NoteContentCompPortrait { } // 添加定时器:3s自动保存 time_id = setInterval(() => { - if(this.closeEditContentDialog){ - this.controllerShow.runJavaScript({ script: "scheduledSaveContent()" }) + if (this.closeEditContentDialog) { + try { + this.controllerShow.runJavaScript("scheduledSaveContent()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } }, 3000) LogUtil.info(TAG, "setInterval time_id : " + time_id) @@ -343,7 +387,7 @@ export struct ToolBarComp { @Consume('SelectedFolderData') selectedFolderData: FolderData @Consume('EditModel') editModel: boolean @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') - controllerShow: WebController + controllerShow: web_webview.WebviewController onDeleteConfirm() { if (this.selectedFolderData.uuid != SysDefFolderUuid.RecentDeletes) { @@ -380,7 +424,19 @@ export struct ToolBarComp { .width(24) .responseRegion({ x: -15.0, y: -15.0, width: 54, height: 54 }) .onClick(() => { - this.controllerShow.runJavaScript({ script: "getHtmlContent()" }) + try { + this.controllerShow.runJavaScript("getHtmlContent()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } // 清除定时器 if (time_id != undefined) { LogUtil.info(TAG, "back, clearInterval time_id : " + time_id) @@ -419,8 +475,20 @@ export struct ToolBarComp { Image($r('app.media.undo')).height(24).width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.undo()" }) + inputMethod.getController().stopInputSession() + try { + this.controllerShow.runJavaScript("RICH_EDITOR.undo()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -431,8 +499,20 @@ export struct ToolBarComp { Image($r('app.media.todo')).height(24).width(24) .onClick(() => { // 退出键盘 - inputMethod.getInputMethodController().stopInput(); - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.redo()" }) + inputMethod.getController().stopInputSession() + try { + this.controllerShow.runJavaScript("RICH_EDITOR.redo()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) }.width(42) .height(42) @@ -443,7 +523,19 @@ export struct ToolBarComp { Image($r('app.media.tick_thin')).height(24).width(24) .onClick(() => { // 保存笔记信息到数据库 - this.controllerShow.runJavaScript({ script: "getHtmlContent()" }) + try { + this.controllerShow.runJavaScript("getHtmlContent()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } this.editModel = false }) }.width(42) @@ -565,7 +657,7 @@ export struct EditNoteCompForPortrait { @Consume('SelectedNoteData') selectedNoteData: NoteData; @Consume('EditModel') editModel: boolean @StorageLink('closeEditContentDialog') closeEditContentDialog: boolean = AppStorage.Link('closeEditContentDialog') - controllerShow: WebController + controllerShow: web_webview.WebviewController editContentDialogCtl: CustomDialogController = new CustomDialogController({ builder: EditContentDialogPortrait({ confirm: this.confirm.bind(this) }), alignment: DialogAlignment.Bottom, @@ -579,7 +671,19 @@ export struct EditNoteCompForPortrait { } confirm(excuteJs: string) { - this.controllerShow.runJavaScript({ script: excuteJs }) + try { + this.controllerShow.runJavaScript(excuteJs, (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } build() { @@ -591,7 +695,19 @@ export struct EditNoteCompForPortrait { .responseRegion({ x: -15.0, y: -15.0, width: 54, height: 54 }) .onClick(() => { // 清单 - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.setTodo()" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setTodo()" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) Text($r("app.string.list")) .fontSize(10) @@ -648,7 +764,19 @@ export struct EditNoteCompForPortrait { OperationUtils.copy(imageUri).then((uriPath) => { var path = "file://" + uriPath LogUtil.info(TAG, 'image uri is:' + path) - this.controllerShow.runJavaScript({ script: "javascript:RICH_EDITOR.insertImage('" + path + "')" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.insertImage('" + path + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } }) } } diff --git a/features/src/main/ets/components/NoteListComp.ets b/features/src/main/ets/components/NoteListComp.ets index ad23b81..bd78447 100644 --- a/features/src/main/ets/components/NoteListComp.ets +++ b/features/src/main/ets/components/NoteListComp.ets @@ -35,6 +35,7 @@ import SearchModel from '@ohos/utils/src/main/ets/default/model/searchModel/Sear import { LogUtil } from '@ohos/utils/src/main/ets/default/baseUtil/LogUtil' import router from '@system.router'; import rs from '@ohos.resourceManager' +import web_webview from '@ohos.web.webview' const TAG = "NoteListComp" @@ -55,7 +56,7 @@ export struct NoteListComp { @StorageLink('AllFolderArray') AllFolderArray: FolderData[] = AppStorage.Link('AllFolderArray') @Consume('SelectedFolderData') selectedFolderData: FolderData @Consume('Search') search: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController build() { Flex({ direction: FlexDirection.Column }) { @@ -101,7 +102,7 @@ struct NoteOverViewComp { @Consume('ExpandStatus') expandStatus: boolean @Consume('Search') search: boolean @Consume('PortraitModel') portraitModel: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController build() { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { @@ -200,7 +201,7 @@ struct NoteOverViewComp { export struct NoteItemComp { public noteItem: NoteData public spans: any[] - controllerShow: WebController + controllerShow: web_webview.WebviewController @Consume('SelectedFolderData') selectedFolderData: FolderData @Consume('SelectedNoteData') selectedNoteData: NoteData @StorageLink('AllFolderArray') AllFolderArray: FolderData[] = AppStorage.Link('AllFolderArray') @@ -327,9 +328,19 @@ export struct NoteItemComp { LogUtil.info(TAG, "NoteItemComp, set continue note success") } if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } if (this.portraitModel == true) { AppStorage.SetOrCreate('NewNote', this.selectedNoteData) @@ -367,7 +378,7 @@ export struct NoteItemListComp { @Consume('SearchResultList') searchResultList: NoteData[] @Consume('SelectedNoteData') selectedNoteData: NoteData @Consume('PortraitModel') portraitModel: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController doSearch() { SearchModel.search(NoteUtil.getNoteDataArray(AppStorage.Get('AllNoteArray'), this.selectedFolderData.uuid), this.inputKeyword) @@ -380,9 +391,19 @@ export struct NoteItemListComp { this.selectedNoteData = NoteUtil.getFirstNoteData(AppStorage.Get('AllNoteArray'), this.selectedFolderData.uuid) } if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) @@ -483,7 +504,7 @@ export struct OperateNoteComp { @Consume('SelectedNoteData') selectedNoteData: NoteData @Consume('PortraitModel') portraitModel: boolean @Consume('selectedAll') selectedAll: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController noteDataMoveDialogCtl: CustomDialogController = new CustomDialogController({ builder: NoteDataMoveDialog({ onConfirm: this.onMoveConfirm.bind(this) }), alignment: DialogAlignment.Center, @@ -505,7 +526,19 @@ export struct OperateNoteComp { AppStorage.SetOrCreate('ContinueNote', continueNote) LogUtil.info(TAG, "onMoveConfirm, set continue note success") if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } this.longpress = false this.refreshFlag = (this.refreshFlag == 0 ? 1 : 0) @@ -543,7 +576,19 @@ export struct OperateNoteComp { this.longpress = false this.selectedNoteData = NoteUtil.getFirstNoteData(AppStorage.Get('AllNoteArray'), this.selectedFolderData.uuid) if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } // save continue data let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) @@ -653,7 +698,7 @@ export struct AddNoteComp { @Consume('EditModel') editModel: boolean @Consume('ChooseNote') chooseNote: boolean @Consume('PortraitModel') portraitModel: boolean - controllerShow: WebController + controllerShow: web_webview.WebviewController build() { Image($r('app.media.addNote')) @@ -676,9 +721,19 @@ export struct AddNoteComp { this.selectedNoteData = noteData AppStorage.SetOrCreate('NewNote', noteData) if (this.portraitModel == false) { - this.controllerShow.runJavaScript({ - script: "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" - }) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')" , (error, result) => { + if (error) { + LogUtil.info(TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(TAG, `code is ${error.code}, message is ${error.message}`) + } } if (this.portraitModel == true) { this.editModel = true diff --git a/product/default/src/main/ets/pages/MyNoteHome.ets b/product/default/src/main/ets/pages/MyNoteHome.ets index a61e3c3..43e9a50 100644 --- a/product/default/src/main/ets/pages/MyNoteHome.ets +++ b/product/default/src/main/ets/pages/MyNoteHome.ets @@ -22,6 +22,7 @@ import RdbStoreUtil from '@ohos/utils/src/main/ets/default/baseUtil/RdbStoreUtil import NoteData from '@ohos/utils/src/main/ets/default/model/databaseModel/NoteData' import inputMethod from '@ohos.inputmethod'; import router from '@system.router'; +import web_webview from '@ohos.web.webview'; @Entry @Component @@ -29,7 +30,7 @@ export struct MyNoteHomeComp { @StorageLink('DBQueryFinished') dBQueryFinished: number = 0 @Provide('PortraitModel') portraitModel: boolean = true @Provide('RefreshFlag') refreshFlag: number = 0 - private controllerShow: WebController = new WebController() + private controllerShow: web_webview.WebviewController = new web_webview.WebviewController() private context = getContext(this) TAG = "MyNoteHomeComp_Tablet" @@ -135,8 +136,20 @@ export struct MyNoteHomeComp { let currentNote = AppStorage.Get('NewNote') let needRefresh = AppStorage.Get('needRefresh') if (currentNote != null && needRefresh == true) { - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setHtml('" + currentNote.content_text + "')" }) - AppStorage.SetOrCreate('needRefresh', false) + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setHtml('" + currentNote.content_text + "')", (error, result) => { + if (error) { + LogUtil.info(this.TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(this.TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(this.TAG, `code is ${error.code}, message is ${error.message}`) + } + AppStorage.SetOrCreate('needRefresh',false) } } @@ -146,6 +159,6 @@ export struct MyNoteHomeComp { onBackPress() { LogUtil.info(this.TAG, "onBackPress") // 退出键盘 - inputMethod.getInputMethodController().stopInput(); + inputMethod.getController().stopInputSession(); } } \ No newline at end of file diff --git a/product/default/src/main/ets/pages/NoteContentHome.ets b/product/default/src/main/ets/pages/NoteContentHome.ets index 4370cbc..5592dd9 100644 --- a/product/default/src/main/ets/pages/NoteContentHome.ets +++ b/product/default/src/main/ets/pages/NoteContentHome.ets @@ -19,12 +19,13 @@ import { NoteContent } from '@ohos/component/src/main/ets/components/NoteContent import { LogUtil } from '@ohos/utils/src/main/ets/default/baseUtil/LogUtil' import RdbStoreUtil from '@ohos/utils/src/main/ets/default/baseUtil/RdbStoreUtil' import inputMethod from '@ohos.inputmethod' +import web_webview from '@ohos.web.webview' @Entry @Component struct NoteContentHome { @Provide('RefreshFlag') refreshFlag: number = 0 - private controllerShow: WebController = new WebController() + private controllerShow: web_webview.WebviewController = new web_webview.WebviewController() @StorageLink('DBQueryFinished') dBQueryFinished: number = 0 @StorageLink('breakPoint') breakPoints: string = 'lg' TAG = "NoteContentHome_Tablet" @@ -46,13 +47,37 @@ struct NoteContentHome { .height('100%') } - onBackPress(): void { - LogUtil.info(this.TAG, "onBackPress") - this.controllerShow.runJavaScript({ script: "RICH_EDITOR.setInputEnabled(false)" }) - this.controllerShow.runJavaScript({ script: "getHtmlContent()" }) - if (deviceInfo.deviceType !== 'phone' && deviceInfo.deviceType !== 'default') { - inputMethod.getInputMethodController().stopInput() + onBackPress():void{ + LogUtil.info(this.TAG, "onBackPress") + try { + this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(false)", (error, result) => { + if (error) { + LogUtil.info(this.TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(this.TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(this.TAG, `code is ${error.code}, message is ${error.message}`) + } + try { + this.controllerShow.runJavaScript("getHtmlContent()", (error, result) => { + if (error) { + LogUtil.info(this.TAG, 'error: ' + JSON.stringify(error)) + return + } + if (result) { + LogUtil.info(this.TAG, "result: " + JSON.stringify(result)) + } + }) + } catch (error) { + LogUtil.error(this.TAG, `code is ${error.code}, message is ${error.message}`) } + if (deviceInfo.deviceType !== 'phone' && deviceInfo.deviceType !== 'default') { + inputMethod.getController().stopInputSession() + } } aboutToAppear(): void { diff --git a/product/default/src/main/ets/pages/NoteHome.ets b/product/default/src/main/ets/pages/NoteHome.ets index 87af438..ea73946 100644 --- a/product/default/src/main/ets/pages/NoteHome.ets +++ b/product/default/src/main/ets/pages/NoteHome.ets @@ -25,6 +25,7 @@ import { SysDefFolderUuid } from '@ohos/utils/src/main/ets/default/model/databas import LayoutUtil from '@ohos/utils/src/main/ets/default/baseUtil/LayoutUtil' import NoteUtil from '@ohos/utils/src/main/ets/default/baseUtil/NoteUtil' import mediaquery from '@ohos.mediaquery' +import web_webview from '@ohos.web.webview' @Entry @Component @@ -45,9 +46,8 @@ export struct NoteHomeComp { @Provide('EditModel') editModel: boolean = false //编辑模式:临时方案 @Provide('Issave') issave: number = 0 @StorageLink('breakPoint') breakPoints: string = 'lg' - controllerShow: WebController + controllerShow: web_webview.WebviewController TAG = "NoteHomeComp_Tablet" - build() { Flex({ justifyContent: FlexAlign.Start }) { if (this.breakPoints === 'lg') { -- Gitee