Browse Source

[feat]1.更换网页跳转flutter_inappwebview
2.升级版本号1.0.1

云天逵 6 months ago
parent
commit
685726871b

+ 4 - 1
lib/main.dart

@@ -7,6 +7,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
 import 'package:get/get.dart';
 import 'package:keyboard/plugins/keyboard_android_platform.dart';
+import 'package:keyboard/resource/assets.gen.dart';
 import 'package:keyboard/resource/colors.gen.dart';
 import 'package:keyboard/resource/string.gen.dart';
 import 'package:keyboard/resource/string_source.dart';
@@ -22,6 +23,7 @@ import 'package:keyboard/utils/privacy_compliance.dart';
 import 'package:keyboard/utils/toast_util.dart';
 import 'package:keyboard/widget/app_lifecycle_widget.dart';
 import 'package:keyboard/sdk/umeng/umeng_helper.dart';
+import 'package:lottie/lottie.dart';
 import 'data/consts/build_config.dart';
 import 'data/consts/constants.dart';
 import 'device/device_info_util.dart';
@@ -41,7 +43,7 @@ void main() async {
     //键盘
     KeyboardAndroidPlatform.init();
   }
-
+  AssetLottie(Assets.anim.animSurpriseDialogData).load();
   runApp(const MyApp());
   //檢查地址
   checkEnv();
@@ -61,6 +63,7 @@ void initCommon() {
 
   //渠道(仅Android)
   ChannelUtil.initChannel();
+
 }
 
 void checkEnv() {

+ 6 - 45
lib/module/browser/browser_controller.dart

@@ -1,63 +1,24 @@
+import 'package:flutter_inappwebview/flutter_inappwebview.dart';
 import 'package:get/get.dart';
 import 'package:injectable/injectable.dart';
-import 'package:webview_flutter/webview_flutter.dart';
 
 import '../../base/base_controller.dart';
-import '../../resource/colors.gen.dart';
 
 @injectable
 class BrowserController extends BaseController {
+  final String tag = 'BrowserController';
+
   String url = (Get.arguments is String) ? (Get.arguments as String) : '';
 
-  final WebViewController webViewController = WebViewController();
+  InAppWebViewController? webViewController;
 
   final title = ''.obs;
 
-  @override
-  void onInit() {
-    super.onInit();
-    _initWebSetting();
-  }
-
-  @override
-  void onReady() {
-    super.onReady();
-    _loadUrl();
-  }
-
-  void _initWebSetting() {
-    webViewController.setJavaScriptMode(JavaScriptMode.unrestricted);
-    webViewController.setBackgroundColor(ColorName.white);
-    webViewController.setNavigationDelegate(
-      NavigationDelegate(
-        onPageFinished: (String url) {
-          _getTitle();
-        },
-      ),
-    );
-  }
-
-  void _loadUrl() {
-    if (url.isEmpty) {
-      return;
-    }
-    webViewController.loadRequest(Uri.parse(url));
-  }
-
   Future<bool> handleBack() async {
-    if (await webViewController.canGoBack()) {
-      webViewController.goBack();
+    if (await webViewController?.canGoBack() ?? false) {
+      webViewController?.goBack();
       return false;
     }
     return true;
   }
-
-  void _getTitle() async {
-    await Future.delayed(const Duration(milliseconds: 1500));
-    webViewController.getTitle().then((title) {
-      if (title != null) {
-        this.title.value = title;
-      }
-    });
-  }
 }

+ 8 - 1
lib/module/browser/browser_page.dart

@@ -1,5 +1,6 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
+import 'package:flutter_inappwebview/flutter_inappwebview.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get.dart';
 import 'package:webview_flutter/webview_flutter.dart';
@@ -62,6 +63,12 @@ class BrowserPage extends BasePage<BrowserController> {
   }
 
   Widget _buildContentView() {
-    return WebViewWidget(controller: controller.webViewController);
+    return InAppWebView(
+      initialUrlRequest: URLRequest(url: WebUri(controller.url)),
+      onWebViewCreated: (webController) =>
+      controller.webViewController = webController,
+      onTitleChanged: (webController, title) =>
+      controller.title.value = title ?? '',
+    );
   }
 }

+ 1 - 5
lib/module/main/main_controller.dart

@@ -1,5 +1,4 @@
 import 'package:flutter/cupertino.dart';
-import 'package:flutter/services.dart';
 import 'package:get/get.dart';
 import 'package:injectable/injectable.dart';
 import 'package:keyboard/data/repository/account_repository.dart';
@@ -8,15 +7,12 @@ import 'package:keyboard/data/repository/config_repository.dart';
 import 'package:keyboard/data/repository/keyboard_repository.dart';
 import 'package:keyboard/data/repository/store_repository.dart';
 import 'package:keyboard/module/main/enums/main_tab.dart';
-import 'package:keyboard/module/new_user/new_user_page.dart';
 import 'package:keyboard/module/store/new_discount/new_discount_page.dart';
-import 'package:lottie/lottie.dart';
 
 import '../../base/base_controller.dart';
 import '../../data/bean/member_info.dart';
 import '../../resource/assets.gen.dart';
 import '../../resource/string.gen.dart';
-
 import '../../router/app_page_arguments.dart';
 import '../../utils/atmob_log.dart';
 import '../../utils/keyboard_tutorial_util.dart';
@@ -103,7 +99,7 @@ class MainController extends BaseController {
   @override
   void onInit() {
     super.onInit();
-    AssetLottie(Assets.anim.animSurpriseDialogData).load();
+
 
 
   }

+ 73 - 9
pubspec.lock

@@ -485,6 +485,70 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "5.10.0"
+  flutter_inappwebview:
+    dependency: "direct main"
+    description:
+      name: flutter_inappwebview
+      sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5"
+      url: "https://pub.dev"
+    source: hosted
+    version: "6.1.5"
+  flutter_inappwebview_android:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_android
+      sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba"
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.1.3"
+  flutter_inappwebview_internal_annotations:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_internal_annotations
+      sha256: "787171d43f8af67864740b6f04166c13190aa74a1468a1f1f1e9ee5b90c359cd"
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.2.0"
+  flutter_inappwebview_ios:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_ios
+      sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d"
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.1.2"
+  flutter_inappwebview_macos:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_macos
+      sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.1.2"
+  flutter_inappwebview_platform_interface:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_platform_interface
+      sha256: cf5323e194096b6ede7a1ca808c3e0a078e4b33cc3f6338977d75b4024ba2500
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.3.0+1"
+  flutter_inappwebview_web:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_web
+      sha256: "55f89c83b0a0d3b7893306b3bb545ba4770a4df018204917148ebb42dc14a598"
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.1.2"
+  flutter_inappwebview_windows:
+    dependency: transitive
+    description:
+      name: flutter_inappwebview_windows
+      sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055"
+      url: "https://pub.dev"
+    source: hosted
+    version: "0.6.0"
   flutter_launcher_icons:
     dependency: "direct dev"
     description:
@@ -1714,37 +1778,37 @@ packages:
     source: hosted
     version: "3.0.2"
   webview_flutter:
-    dependency: "direct main"
+    dependency: transitive
     description:
       name: webview_flutter
-      sha256: "889a0a678e7c793c308c68739996227c9661590605e70b1f6cf6b9a6634f7aec"
+      sha256: caf0f5a1012aa3c2d33c4215adc72dc1194bb59a2d3ed901f457965626805e66
       url: "https://pub.dev"
     source: hosted
-    version: "4.10.0"
+    version: "4.11.0"
   webview_flutter_android:
     dependency: transitive
     description:
       name: webview_flutter_android
-      sha256: e09150b28a07933839adef0e4a088bb43e8c8d9e6b93025b01882d4067a58ab0
+      sha256: "6b0eae02b7604954b80ee9a29507ac38f5de74b712faa6fee33abc1cdedc1b21"
       url: "https://pub.dev"
     source: hosted
-    version: "4.3.4"
+    version: "4.4.2"
   webview_flutter_platform_interface:
     dependency: transitive
     description:
       name: webview_flutter_platform_interface
-      sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d
+      sha256: "18b1640839cf6546784a524c72aded5b6e86b23e7167dc2311cc96f7658b64bd"
       url: "https://pub.dev"
     source: hosted
-    version: "2.10.0"
+    version: "2.11.0"
   webview_flutter_wkwebview:
     dependency: transitive
     description:
       name: webview_flutter_wkwebview
-      sha256: c49a98510080378b1525132f407a92c3dcd3b7145bef04fb8137724aadcf1cf0
+      sha256: c9f9be526fa0d3347374ceaa05c4b3acb85f4f112abd62f7d74b7d301fa515ff
       url: "https://pub.dev"
     source: hosted
-    version: "3.18.4"
+    version: "3.20.0"
   wechat_assets_picker:
     dependency: "direct main"
     description:

+ 2 - 2
pubspec.yaml

@@ -3,7 +3,7 @@ description: "A new Flutter project."
 
 publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 
-version: 1.0.0+102
+version: 1.0.1+102
 
 environment:
   sdk: ^3.7.0
@@ -37,7 +37,7 @@ dependencies:
   #存储框架
   mmkv: ^2.2.1
   #网页跳转
-  webview_flutter: ^4.10.0
+  flutter_inappwebview: ^6.1.5
   # 系统的App设置
   app_settings: ^6.1.1