最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

正確在Flutter中添加webview實(shí)現(xiàn)詳解

 更新時(shí)間:2022年12月06日 09:15:38   作者:顧安  
這篇文章主要為大家介紹了正確在Flutter中添加webview實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

為什么要在flutter中引入webview?這不是廢話么,當(dāng)然是為了加載一個(gè)網(wǎng)頁(yè),這不是移動(dòng)端最基本的需求么,哈哈!說(shuō)的真不錯(cuò),接下來(lái)我要是告訴你我的用法,你可能要大吃一驚。我的用處很簡(jiǎn)單,那就是在webview中再加載一個(gè)flutter編譯成web的項(xiàng)目。有沒(méi)有嚇到你。別怕,我這么做的原因很簡(jiǎn)單,就是為了熱更新??赡茉趂lutter中實(shí)現(xiàn)熱更新的方法有很多,但我敢說(shuō)我這么做就是最好的熱更新方式。當(dāng)我內(nèi)容發(fā)生變更是時(shí)候,我不需要繼續(xù)去審核,只需要在服務(wù)器中,更新內(nèi)容,我的熱更新就實(shí)現(xiàn)了!是不是聽(tīng)著很動(dòng)心,那就趕緊學(xué)起來(lái)吧。

安裝

在Flutter應(yīng)用開(kāi)發(fā)中,由于官方并沒(méi)有提供類(lèi)似Webview的網(wǎng)頁(yè)加載組件,所以如果項(xiàng)目中涉及網(wǎng)頁(yè)加載就需要使用第三方插件庫(kù)。網(wǎng)上第三方插件庫(kù)很多,我不推薦,自行百度搜索比較,用法基本雷同,webview_flutter是Flutter官方開(kāi)發(fā)和維護(hù)的網(wǎng)頁(yè)加載插件庫(kù)。所以今天我講講它的使用方法

  • 在pubspec.yaml文件中添加依賴(lài)腳本(并運(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)目遇到的問(wèn)題

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)開(kāi)始,明文支持默認(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)行了,畫(huà)面顯示正常,如果你還需要遇到其他問(wèn)題,可以留言一起解決。

以上就是正確在Flutter中添加webview實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Flutter添加webview的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

白山市| 曲周县| 滨州市| 班玛县| 岑溪市| 信丰县| 买车| 肇庆市| 射阳县| 衡阳县| 青浦区| 婺源县| 蓝田县| 浦江县| 长沙市| 醴陵市| 长宁区| 闵行区| 铁力市| 太仆寺旗| 阳山县| 岐山县| 临朐县| 双辽市| 景谷| 博客| 隆德县| 大荔县| 新蔡县| 南昌市| 和政县| 邓州市| 柘荣县| 当雄县| 来安县| 伊宁市| 炎陵县| 防城港市| 鸡泽县| 潞城市| 临澧县|