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_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;
},
),

View File

@ -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);

View File

@ -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<NavigationDecision> 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;
}
}

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:url_launcher/url_launcher.dart';
@ -26,10 +27,6 @@ class WebViewLogic {
//Scheme业务逻辑
static Future<void> 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);
}
}

View File

@ -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
#视频播放器