diff --git a/star_lock/lib/mine/mall/lockMall_logic.dart b/star_lock/lib/mine/mall/lockMall_logic.dart index 360678fb..7fa610c9 100644 --- a/star_lock/lib/mine/mall/lockMall_logic.dart +++ b/star_lock/lib/mine/mall/lockMall_logic.dart @@ -1,6 +1,7 @@ import 'package:star_lock/mine/mall/lockMall_entity.dart'; import 'package:star_lock/mine/mall/lockMall_state.dart'; import 'package:star_lock/network/api_repository.dart'; +import 'package:star_lock/webview/webview_logic.dart'; import 'package:webview_flutter/webview_flutter.dart'; import '../../tools/baseGetXController.dart'; @@ -26,10 +27,12 @@ class LockMallLogic extends BaseGetXController { state.webProgress.value = 1.0; }, onWebResourceError: (WebResourceError error) {}, - onNavigationRequest: (NavigationRequest request) { - // if (request.url.startsWith('https://www.youtube.com/')) { - // return NavigationDecision.prevent; - // } + onNavigationRequest: (NavigationRequest request) async { + //路由跳转逻辑 + if (WebViewLogic.judgePaySchemes(request.url)) { + await WebViewLogic.runScheme(request.url); + return NavigationDecision.prevent; + } return NavigationDecision.navigate; }, ), diff --git a/star_lock/lib/mine/mall/lockMall_page.dart b/star_lock/lib/mine/mall/lockMall_page.dart index 7e31f3eb..c222c03d 100644 --- a/star_lock/lib/mine/mall/lockMall_page.dart +++ b/star_lock/lib/mine/mall/lockMall_page.dart @@ -6,7 +6,6 @@ import 'package:star_lock/mine/mall/lockMall_logic.dart'; import 'package:star_lock/tools/titleAppBar.dart'; import 'package:webview_flutter/webview_flutter.dart'; -import '../../translations/trans_lib.dart'; class LockMallPage extends StatefulWidget { const LockMallPage({Key? key}) : super(key: key); diff --git a/star_lock/lib/mine/mall/lockMall_state.dart b/star_lock/lib/mine/mall/lockMall_state.dart index 2633f4b6..6a541767 100644 --- a/star_lock/lib/mine/mall/lockMall_state.dart +++ b/star_lock/lib/mine/mall/lockMall_state.dart @@ -6,18 +6,15 @@ import 'package:webview_flutter/webview_flutter.dart'; class LockMallState { var lockMallUrl = "".obs; var webProgress = 0.0.obs; - late WebViewController mallWebView = WebViewController() - ..setJavaScriptMode(JavaScriptMode.unrestricted) - ..setBackgroundColor(Colors.white) - ..setUserAgent(WebViewLogic.userAgent) - ..setNavigationDelegate(NavigationDelegate(onNavigationRequest: onNavigationRequest)); + late WebViewController mallWebView = initWebViewController(); - //路由跳转逻辑 - Future onNavigationRequest(NavigationRequest request) async { - if (WebViewLogic.judgePaySchemes(request.url)) { - await WebViewLogic.runScheme(request.url); - return NavigationDecision.prevent; - } - return NavigationDecision.navigate; + //初始化webview控制器 + WebViewController initWebViewController() { + WebViewController allWebView = WebViewController(); + allWebView.setJavaScriptMode(JavaScriptMode.unrestricted); + allWebView.setBackgroundColor(Colors.white); + allWebView.setUserAgent(WebViewLogic.userAgent); + return allWebView; } + } diff --git a/star_lock/lib/webview/webview_logic.dart b/star_lock/lib/webview/webview_logic.dart index a3b6f55f..94461c3d 100644 --- a/star_lock/lib/webview/webview_logic.dart +++ b/star_lock/lib/webview/webview_logic.dart @@ -1,3 +1,4 @@ +import 'package:get/get_core/src/get_main.dart'; import 'package:star_lock/network/request_interceptor.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -26,10 +27,6 @@ class WebViewLogic { //运行支付的Scheme业务逻辑 static Future runScheme(String url) async { - if (await canLaunchUrl(Uri.parse(url))) { - await launchUrl(Uri.parse(url)); - } else { - throw 'Could not launch $url'; - } + await launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication); } } diff --git a/star_lock/pubspec.yaml b/star_lock/pubspec.yaml index dd9e26fa..6ff574dc 100644 --- a/star_lock/pubspec.yaml +++ b/star_lock/pubspec.yaml @@ -122,7 +122,8 @@ dependencies: #网络图片缓存 cached_network_image: ^3.2.0 - webview_flutter: ^4.2.3 + webview_flutter: ^4.4.2 + jpush_flutter: ^2.5.1 #视频播放器