Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为啥?
Posted
技术标签:
【中文标题】Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为啥?【英文标题】:Flutter - Webview in DEBUG is working but it's displaying blank on RELEASE apk, why?Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为什么? 【发布时间】:2021-11-25 22:57:22 【问题描述】:我正在使用这个 webviews 包处理颤振 https://pub.dev/packages/webview_flutter.
调试模式下的 webview 运行良好(由于 USB 不兼容,我使用模拟器无法在实际设备上使用调试)但它只显示灰色的空白屏幕。我也尝试过在 androidManifest.xml 中插入权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
代码如下:
class _WebViewHereClass extends State<WebViewHereClassState>
final String _url;
bool isLoading=true;
final _key = UniqueKey();
_WebViewHereClass(this._url);
@override
Widget build(BuildContext context)
return Scaffold(
body: Center(
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Flex(
direction: Axis.vertical,
children: [
Expanded(
flex: 1,
child: WebView(
key: _key,
javascriptMode: JavascriptMode.unrestricted,
initialUrl: _url,
onPageFinished: (finish)
setState(()
isLoading = false;
);
,
)
),
],
),
isLoading ? const Center(
child: CircularProgressIndicator(
strokeWidth: 1,
),
) : Stack(),
],
),
),
);
该页面应该在我单击上一页(主页)上的按钮后显示。
为什么不显示?
【问题讨论】:
【参考方案1】:我认为您没有在 android/app/src/main/AndroidManifest.xml
中授予互联网权限将此行添加到 android/app/src/main/AndroidManifest.xml
的<uses-permission android:name="android.permission.INTERNET" />
关于不安全 http 的更多信息,您可以查看 this
<uses-permission android:name="android.permission.INTERNET" /> //This line add
<application
android:name="io.demo.app.test"
android:label="ProjectName"
android:usesCleartextTraffic="true" //This line add
android:icon="@mipmap/ic_launcher">
【讨论】:
【参考方案2】:您在void initState()
期间是否正确设置了WebView.platform = SurfaceAndroidWebView()
?
【讨论】:
没有,不过现在解决了,我只更新flutter和dependencies(因为这个issue一贴出来就有更新了),一切都很顺利... Geat 可能是之前的设想,因为 Flutter 和 Native 的依赖冲突。以上是关于Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 flutter_webview_plugin 播放视频
Flutter给WebView设置Cookie(Session)
Flutter给WebView设置Cookie(Session)
Flutter APP 上架 APP Stroe--- Flutter产物是Debug 版被拒绝上传