初始化

This commit is contained in:
谢宇宁
2026-09-15 15:44:13 +07:00
commit a23ba685e9
1065 changed files with 101122 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:get/get.dart';
import 'package:hgdj/hj_page/mine/mine_vip/pay_order_source.dart';
import 'package:hgdj/routers/jump_router.dart';
class H5Logic extends GetxController {
// ========== 属性声明 ==========
final String? url;
H5Logic({this.url});
InAppWebViewController? webViewCtr;
// url 兜底空字符串,防 null 强解包崩溃
URLRequest get initialUrlRequest => URLRequest(url: WebUri(url ?? ''));
// ========== 公开方法 ==========
void onWebViewCreated(InAppWebViewController controller) {
webViewCtr = controller;
_setupHandlers(controller);
}
// ========== 私有方法 ==========
// 注册 H5 与 native 的 JS 桥
void _setupHandlers(InAppWebViewController controller) {
controller.addJavaScriptHandler(
handlerName: 'prizeBack', callback: (_) => Get.back());
controller.addJavaScriptHandler(
handlerName: 'shopBack', callback: (_) => Get.back());
// 跳金币充值
controller.addJavaScriptHandler(
handlerName: 'shopCharge',
callback: (_) => pushToWalletPage(
tabPosition: 1, sourcePage: PaySourcePage.h5Activity),
);
// H5 触发外部链接跳转
controller.addJavaScriptHandler(
handlerName: 'jumpOutLink',
callback: (args) {
if (args.isNotEmpty && args[0] is String) {
pushToPageByLink(args[0] as String);
}
},
);
// H5 触发:直接跳系统外部浏览器(callHandler('openOutLink', url)
controller.addJavaScriptHandler(
handlerName: 'openOutLink',
callback: (args) {
if (args.isNotEmpty && args[0] is String) {
launchUrlToWeb(args[0] as String);
}
},
);
}
}