fix:修复bug:支付的跳转

This commit is contained in:
anfe 2024-04-08 14:17:15 +08:00
parent 7c6f5883ce
commit 8494144e0e
5 changed files with 20 additions and 23 deletions

View File

@ -1,6 +1,7 @@
import 'package:star_lock/mine/mall/lockMall_entity.dart'; import 'package:star_lock/mine/mall/lockMall_entity.dart';
import 'package:star_lock/mine/mall/lockMall_state.dart'; import 'package:star_lock/mine/mall/lockMall_state.dart';
import 'package:star_lock/network/api_repository.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 'package:webview_flutter/webview_flutter.dart';
import '../../tools/baseGetXController.dart'; import '../../tools/baseGetXController.dart';
@ -26,10 +27,12 @@ class LockMallLogic extends BaseGetXController {
state.webProgress.value = 1.0; state.webProgress.value = 1.0;
}, },
onWebResourceError: (WebResourceError error) {}, onWebResourceError: (WebResourceError error) {},
onNavigationRequest: (NavigationRequest request) { onNavigationRequest: (NavigationRequest request) async {
// if (request.url.startsWith('https://www.youtube.com/')) { //
// return NavigationDecision.prevent; if (WebViewLogic.judgePaySchemes(request.url)) {
// } await WebViewLogic.runScheme(request.url);
return NavigationDecision.prevent;
}
return NavigationDecision.navigate; return NavigationDecision.navigate;
}, },
), ),

View File

@ -6,7 +6,6 @@ import 'package:star_lock/mine/mall/lockMall_logic.dart';
import 'package:star_lock/tools/titleAppBar.dart'; import 'package:star_lock/tools/titleAppBar.dart';
import 'package:webview_flutter/webview_flutter.dart'; import 'package:webview_flutter/webview_flutter.dart';
import '../../translations/trans_lib.dart';
class LockMallPage extends StatefulWidget { class LockMallPage extends StatefulWidget {
const LockMallPage({Key? key}) : super(key: key); const LockMallPage({Key? key}) : super(key: key);

View File

@ -6,18 +6,15 @@ import 'package:webview_flutter/webview_flutter.dart';
class LockMallState { class LockMallState {
var lockMallUrl = "".obs; var lockMallUrl = "".obs;
var webProgress = 0.0.obs; var webProgress = 0.0.obs;
late WebViewController mallWebView = WebViewController() late WebViewController mallWebView = initWebViewController();
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(Colors.white)
..setUserAgent(WebViewLogic.userAgent)
..setNavigationDelegate(NavigationDelegate(onNavigationRequest: onNavigationRequest));
// //webview控制器
Future<NavigationDecision> onNavigationRequest(NavigationRequest request) async { WebViewController initWebViewController() {
if (WebViewLogic.judgePaySchemes(request.url)) { WebViewController allWebView = WebViewController();
await WebViewLogic.runScheme(request.url); allWebView.setJavaScriptMode(JavaScriptMode.unrestricted);
return NavigationDecision.prevent; allWebView.setBackgroundColor(Colors.white);
} allWebView.setUserAgent(WebViewLogic.userAgent);
return NavigationDecision.navigate; return allWebView;
} }
} }

View File

@ -1,3 +1,4 @@
import 'package:get/get_core/src/get_main.dart';
import 'package:star_lock/network/request_interceptor.dart'; import 'package:star_lock/network/request_interceptor.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@ -26,10 +27,6 @@ class WebViewLogic {
//Scheme业务逻辑 //Scheme业务逻辑
static Future<void> runScheme(String url) async { static Future<void> runScheme(String url) async {
if (await canLaunchUrl(Uri.parse(url))) { await launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication);
await launchUrl(Uri.parse(url));
} else {
throw 'Could not launch $url';
}
} }
} }

View File

@ -122,7 +122,8 @@ dependencies:
#网络图片缓存 #网络图片缓存
cached_network_image: ^3.2.0 cached_network_image: ^3.2.0
webview_flutter: ^4.2.3 webview_flutter: ^4.4.2
jpush_flutter: ^2.5.1 jpush_flutter: ^2.5.1
#视频播放器 #视频播放器