flutter支持HTML么,Flutter 加载本地HTML

///获取打包后的资源文件实际路径

///如assets/files/index.html

String getAssetsPath(String path) {

if (Platform.isAndroid) {

return 'file:///android_asset/flutter_assets/' + path;

} else {

return 'file://Frameworks/App.framework/flutter_assets/' + path;

}

}

使用

46060829b1b7

image.png

android设备上已经可以正常显示本地html页面了,但是IOS设备还需要修改下插件IOS部分的源码,FlutterWebView.m文件:

46060829b1b7

image.png

//判断url的加载方式

if([url hasPrefix:@"http"]) {

[_webView loadRequest:request];

}else{

// 我自己项目中传过来的路径中含有@"file://",所以需要替换为空,实际应以当前项目为主

url = [url stringByReplacingOccurrencesOfString:@"file://" withString:@""];

if (@available(iOS 9.0, *)) {

NSURL *findUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], url]];

[_webView loadFileURL:findUrl allowingReadAccessToURL:[findUrl URLByDeletingLastPathComponent]];

} else {

// Fallback on earlier versions

NSLog(@"webview_flutter: loadFileUrl error");

}

}

android 跨域问题

46060829b1b7

image.png

FlutterWebView.java 添加代码

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

webView.getSettings().setAllowFileAccessFromFileURLs(true);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值