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_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;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
#视频播放器
|
#视频播放器
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user