From b9c89271d66088ea3983da91b594967ebfa4adc2 Mon Sep 17 00:00:00 2001 From: zhan-linlin <17301907374@163.com> Date: Mon, 26 Feb 2024 11:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=9D=99=E6=80=81html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhan-linlin <17301907374@163.com> --- .../lib/src/ohos_webview_controller.dart | 8 +++----- .../webview_flutter/GeneratedOhosWebView.ets | 8 ++++---- .../webview_flutter/WebViewHostApiImpl.ets | 6 +++++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_ohos/lib/src/ohos_webview_controller.dart b/packages/webview_flutter/webview_flutter_ohos/lib/src/ohos_webview_controller.dart index 8346bbda1..28278fe8b 100644 --- a/packages/webview_flutter/webview_flutter_ohos/lib/src/ohos_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_ohos/lib/src/ohos_webview_controller.dart @@ -275,11 +275,9 @@ class OhosWebViewController extends PlatformWebViewController { 'key', ); } - - return _webView.loadUrl( - Uri.file('/ohos_asset/$assetFilePath').toString(), - {}, - ); + _webView.settings.setAllowFileAccess(true); + final String url = "resources/rawfile/" + assetFilePath; + return _webView.loadUrl(url, {}); } @override diff --git a/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/GeneratedOhosWebView.ets b/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/GeneratedOhosWebView.ets index 31876304a..bef6cdf78 100644 --- a/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/GeneratedOhosWebView.ets +++ b/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/GeneratedOhosWebView.ets @@ -2930,13 +2930,13 @@ export abstract class FlutterAssetManagerHostApi { if (api != null) { channel.setMessageHandler( { - onMessage: (message: ESObject, reply: Reply) => { + onMessage: async (message: ESObject, reply: Reply) => { let wrapped: ArrayList = new ArrayList(); const args: Array = message; const pathArg: string = args[0]; try { - let output: ESObject = api.list(pathArg); - wrapped.insert(null, 0); + let output: ESObject = await api.list(pathArg); + wrapped.insert(output, 0); } catch (err) { const wrappedError: ArrayList = GeneratedOhosWebView.wrapError(err); wrapped = wrappedError; @@ -2964,7 +2964,7 @@ export abstract class FlutterAssetManagerHostApi { const nameArg: string = args[0]; try { let output: ESObject = api.getAssetFilePathByName(nameArg); - wrapped.insert(null, 0); + wrapped.insert(output, 0); } catch (err) { const wrappedError: ArrayList = GeneratedOhosWebView.wrapError(err); wrapped = wrappedError; diff --git a/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/WebViewHostApiImpl.ets b/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/WebViewHostApiImpl.ets index de303b8b3..07fa1d459 100644 --- a/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/WebViewHostApiImpl.ets +++ b/packages/webview_flutter/webview_flutter_ohos/ohos/webview_flutter/src/main/ets/io.flutter.plugins/webview_flutter/WebViewHostApiImpl.ets @@ -83,7 +83,11 @@ export class WebViewHostApiImpl extends WebViewHostApi { loadUrl(instanceId: number, url: string, headers: Map): void { const webView: WebViewPlatformView = this.instanceManager.getInstance(instanceId); try { - webView.getController().loadUrl(url, this.toWebHeaders(headers)); + if (url.startsWith("resources/rawfile/")) { + webView.getController().loadUrl($rawfile(url.replace("resources/rawfile/","")), this.toWebHeaders(headers)); + }else { + webView.getController().loadUrl(url, this.toWebHeaders(headers)); + } } catch (err) { Log.e(TAG, "loadUrl err = " + err); setTimeout( -- Gitee