fix:修复bug:支付的跳转
This commit is contained in:
parent
7c6f5883ce
commit
8494144e0e
@ -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;
|
||||
},
|
||||
),
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
#视频播放器
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user