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 8346bbda170ea2514fab49b2d3415ea66366067e..28278fe8bfd6eed5d7dc90e8240664be28a8f2af 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 31876304ac396e66a7a8f72a52a05f69d1cb44ad..bef6cdf78f9e6fb9383fe4cdd3cbc280fa7c64bb 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 de303b8b3c88c484cfce99066038c678fd4575fc..07fa1d4598976295a104f19a0dcd93b6410cb62a 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(