61 lines
1.7 KiB
Dart
61 lines
1.7 KiB
Dart
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:webview_flutter/webview_flutter.dart';
|
|
|
|
import '../../tools/baseGetXController.dart';
|
|
|
|
class LockMallLogic extends BaseGetXController {
|
|
final LockMallState state = LockMallState();
|
|
|
|
//获取商城跳转地址
|
|
Future<void> getMallURLRequest() async {
|
|
LockMallDataEntity entity = await ApiRepository.to.getMallURLData();
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
state.lockMallUrl.value = entity.data!.url!;
|
|
state.mallWebView.setNavigationDelegate(
|
|
NavigationDelegate(
|
|
onProgress: (int progress) {
|
|
// Update loading bar.
|
|
state.webProgress.value = progress / 100;
|
|
},
|
|
onPageStarted: (String url) {
|
|
state.webProgress.value = 0.0;
|
|
},
|
|
onPageFinished: (String url) {
|
|
state.webProgress.value = 1.0;
|
|
},
|
|
onWebResourceError: (WebResourceError error) {},
|
|
onNavigationRequest: (NavigationRequest request) {
|
|
// if (request.url.startsWith('https://www.youtube.com/')) {
|
|
// return NavigationDecision.prevent;
|
|
// }
|
|
return NavigationDecision.navigate;
|
|
},
|
|
),
|
|
);
|
|
state.mallWebView.loadRequest(Uri.parse(state.lockMallUrl.value));
|
|
}
|
|
}
|
|
|
|
@override
|
|
Future<void> onReady() async {
|
|
print("ready home");
|
|
super.onReady();
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
print("init home");
|
|
super.onInit();
|
|
|
|
getMallURLRequest();
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
print("close home");
|
|
super.onClose();
|
|
}
|
|
}
|