Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx_webview_flutter
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx_webview_flutter
Commits
14ed110b
提交
14ed110b
authored
6月 12, 2025
作者:
MrQi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
README.md修改
上级
f8118b91
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
74 行增加
和
0 行删除
+74
-0
README.md
README.md
+74
-0
没有找到文件。
README.md
浏览文件 @
14ed110b
...
...
@@ -56,6 +56,80 @@ Future<void> setTitle(String title)
Future
<
bool
>
setAppBarTextStyle
(
TextStyle
?
style
)
```
### 使用
#### 添加WebView
使用CustomWebView组件来显示WebView。
```
dart
import
'package:flutter/material.dart'
;
import
'../clx_webview_flutter.dart'
;
abstract
class
CaptchaUtil
{
static
Future
<
bool
>?
generateCaptcha
(
{
required
BuildContext
context
,
required
String
uri
,
required
Future
<
bool
>
Function
(
JavaScriptMessage
message
)
onCaptchaGenerated
})
async
{
return
await
Navigator
.
push
(
context
,
PageRouteBuilder
(
pageBuilder:
(
context
,
animation
,
secondaryAnimation
)
{
final
CustomController
customController
=
CustomController
.
loadRequest
(
requestedUrl:
Uri
.
parse
(
uri
),
title:
'验证码'
);
customController
.
setJavaScriptChannels
(
JavaScriptChannel
(
name:
'H5CallFlutterInterface'
,
callback:
(
message
)
async
{
if
(!
context
.
mounted
)
{
return
CLXResult
.
fail
(
Exception
(
'context not mounted'
));
}
final
result
=
await
onCaptchaGenerated
(
message
);
if
(
result
)
{
Navigator
.
pop
(
context
,
true
);
return
CLXResult
.
fail
(
Exception
(
'captcha failed'
));
}
else
{
customController
.
controller
.
reload
();
return
CLXResult
.
succ
(
result
);
}
},
));
return
CustomWebView
(
customController:
customController
);
},
));
}
}
```
外部控制方法监听
```
dart
import
'dart:async'
;
import
'dart:convert'
;
import
'package:coal_trade/api/base_model.dart'
;
import
'package:coal_trade/app/environment.dart'
;
import
'package:get/get.dart'
;
import
'package:clx_webview_flutter/clx_webview_flutter.dart'
;
abstract
class
VerificationCodeManager
{
/// 发送登录验证码
static
Future
<
bool
>
sendLoginCode
(
String
phoneNo
)
async
{
final
result
=
await
CaptchaUtil
.
generateCaptcha
(
context:
Get
.
context
!,
uri:
Config
.
slideVerifyUrlNew
,
onCaptchaGenerated:
(
message
)
async
{
final
data
=
json
.
decode
(
message
.
message
);
final
result
=
await
fetchAsync
(
Method
.
post
,
url:
'/trade-operation/app/public/login/captcha/send'
,
params:
{
'mobile'
:
phoneNo
,
'sceneId'
:
data
[
'sceneId'
],
'captchaVerifyParam'
:
data
[
'captchaVerifyParam'
],
},
);
return
Future
.
value
(
result
.
isSuccess
);
},
);
return
result
==
true
;
}
}
```
#### 获取标题
```
dart
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论