正確在Flutter中添加webview實(shí)現(xiàn)詳解
前言
為什么要在flutter中引入webview?這不是廢話么,當(dāng)然是為了加載一個(gè)網(wǎng)頁(yè),這不是移動(dòng)端最基本的需求么,哈哈!說(shuō)的真不錯(cuò),接下來(lái)我要是告訴你我的用法,你可能要大吃一驚。我的用處很簡(jiǎn)單,那就是在webview中再加載一個(gè)flutter編譯成web的項(xiàng)目。有沒有嚇到你。別怕,我這么做的原因很簡(jiǎn)單,就是為了熱更新??赡茉趂lutter中實(shí)現(xiàn)熱更新的方法有很多,但我敢說(shuō)我這么做就是最好的熱更新方式。當(dāng)我內(nèi)容發(fā)生變更是時(shí)候,我不需要繼續(xù)去審核,只需要在服務(wù)器中,更新內(nèi)容,我的熱更新就實(shí)現(xiàn)了!是不是聽著很動(dòng)心,那就趕緊學(xué)起來(lái)吧。
安裝
在Flutter應(yīng)用開發(fā)中,由于官方并沒有提供類似Webview的網(wǎng)頁(yè)加載組件,所以如果項(xiàng)目中涉及網(wǎng)頁(yè)加載就需要使用第三方插件庫(kù)。網(wǎng)上第三方插件庫(kù)很多,我不推薦,自行百度搜索比較,用法基本雷同,webview_flutter是Flutter官方開發(fā)和維護(hù)的網(wǎng)頁(yè)加載插件庫(kù)。所以今天我講講它的使用方法
- 在pubspec.yaml文件中添加依賴腳本(并運(yùn)行隱式flutter pub get)
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
webview_flutter: ^3.0.4
- 使用
import 'package:flutter/material.dart';
import 'dart:io';
import 'package:webview_flutter/webview_flutter.dart';
class WebviewApp extends StatefulWidget {
const WebviewApp({Key? key}) : super(key: key);
@override
State<WebviewApp> createState() => _WebviewAppState();
}
class _WebviewAppState extends State<WebviewApp> {
@override
void initState() {
super.initState();
if (Platform.isAndroid) WebView.platform = AndroidWebView();
}
@override
Widget build(BuildContext context) {
return const WebView(
initialUrl: 'https://www.baidu.com',
javascriptMode: JavascriptMode.unrestricted,
);
}
}
好了,這樣我們就成功引入了webview,并在webview中加載了百度首頁(yè)。你高興的去運(yùn)行項(xiàng)目,結(jié)果卻傻眼了,終端一片紅,好了,我來(lái)說(shuō)說(shuō)爆紅的解決方案。
運(yùn)行項(xiàng)目遇到的問題
One or more plugins require a higher Android SDK version.
- 解決方案:找到 項(xiàng)目根目錄\android\app\build.gradle,修改如下配置:
android {
compileSdkVersion 32
}
Error: uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library
- 解決方案:找到 項(xiàng)目根目錄\android\app\build.gradle,修改如下配置:
defaultConfig {
applicationId "com.example.flutter_jsbridge_js"
minSdkVersion 20
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
net:ERR_CLEARTEXT_NOT_PERMITTED
這時(shí)候運(yùn)行項(xiàng)目已經(jīng)已經(jīng)不會(huì)報(bào)錯(cuò)了,但是webview卻顯示一串神奇代碼:
net:ERR_CLEARTEXT_NOT_PERMITTED,這是因?yàn)閺?Android 9(API 級(jí)別 28)開始,明文支持默認(rèn)處于禁用狀態(tài)。
- 解決方案:
創(chuàng)建文件:/xml/network_security_config.xml
目錄路徑:“項(xiàng)目根目錄/android/app/main/res”
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.example.com(to be adjusted)</domain>
</domain-config>
</network-security-config>
- 對(duì)AndroidManifest.xml文件做修改:
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...>
...
</application>
</manifest>
這時(shí)候再去運(yùn)行項(xiàng)目,就可以正常運(yùn)行了,畫面顯示正常,如果你還需要遇到其他問題,可以留言一起解決。
以上就是正確在Flutter中添加webview實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Flutter添加webview的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
android 九宮格滑動(dòng)解鎖開機(jī)實(shí)例源碼學(xué)習(xí)
開機(jī)密碼的樣式種類多種多樣,五花八門.本文接下來(lái)介紹滑動(dòng)九宮格來(lái)達(dá)到開機(jī)目的,感興趣的朋友可以了解下2013-01-01
Android中TabLayout+ViewPager 簡(jiǎn)單實(shí)現(xiàn)app底部Tab導(dǎo)航欄
TabLayout 是Android com.android.support:design庫(kù)的一個(gè)控件。本文主要給大家介紹TabLayout+ViewPager 簡(jiǎn)單實(shí)現(xiàn)app底部Tab布局,需要的的朋友參考下2017-02-02
zxing二維碼位矩陣轉(zhuǎn)換成Bitmap位圖的實(shí)戰(zhàn)教程
二維碼的應(yīng)用已經(jīng)可以說(shuō)是非常廣泛了,下面這篇文章主要給大家介紹了關(guān)于zxing二維碼位矩陣轉(zhuǎn)換成Bitmap位圖的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
Android Wear計(jì)時(shí)器開發(fā)
這篇文章主要介紹了Android Wear計(jì)時(shí)器開發(fā),需要的朋友可以參考下2014-11-11
Android 讀取assets和raw文件內(nèi)容實(shí)例代碼
這篇文章主要介紹了Android 讀取assets和raw文件內(nèi)容的相關(guān)資料,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下2016-10-10
Android開發(fā)之ViewPager實(shí)現(xiàn)滑動(dòng)切換頁(yè)面
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)之ViewPager實(shí)現(xiàn)滑動(dòng)切換頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09
Android實(shí)現(xiàn)360手機(jī)助手底部的動(dòng)畫菜單
這篇文章給大家分享了利用Android實(shí)現(xiàn)360手機(jī)助手底部的動(dòng)畫菜單效果,文中給出了實(shí)例代碼,這樣對(duì)大家的學(xué)習(xí)或者理解更有幫助,有需要的朋友們下面來(lái)一起看看吧。2016-10-10

