Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-api
提交
929f308b
U
uni-api
项目概览
DCloud
/
uni-api
通知
670
Star
23
Fork
12
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-api
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
929f308b
编写于
12月 15, 2022
作者:
lizhongyi_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: iOS showModal 插件
上级
432d69d0
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
541 addition
and
307 deletion
+541
-307
.hbuilderx/launch.json
.hbuilderx/launch.json
+20
-14
manifest.json
manifest.json
+71
-71
pages/index/index.vue
pages/index/index.vue
+254
-222
uni_modules/uni-showmodal/changelog.md
uni_modules/uni-showmodal/changelog.md
+0
-0
uni_modules/uni-showmodal/package.json
uni_modules/uni-showmodal/package.json
+81
-0
uni_modules/uni-showmodal/readme.md
uni_modules/uni-showmodal/readme.md
+5
-0
uni_modules/uni-showmodal/utssdk/app-android/index.uts
uni_modules/uni-showmodal/utssdk/app-android/index.uts
+0
-0
uni_modules/uni-showmodal/utssdk/app-ios/index.uts
uni_modules/uni-showmodal/utssdk/app-ios/index.uts
+110
-0
未找到文件。
.hbuilderx/launch.json
浏览文件 @
929f308b
{
//
launch.json
配置了启动调试时相关设置,configurations下节点名称可为
app-plus/h
5
/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp
-360
/
{
//
launch.json
配置了启动调试时相关设置,configurations下节点名称可为
app-plus/h
5
/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp
-360
/
//
launchtype项可配置值为local或remote
,
local代表前端连本地云函数,remote代表前端连云端云函数
//
launchtype项可配置值为local或remote
,
local代表前端连本地云函数,remote代表前端连云端云函数
"version"
:
"0.0"
,
"version"
:
"0.0"
,
"configurations"
:
[{
"configurations"
:
[
"app-plus"
:
{
{
"app-plus"
:
{
"launchtype"
:
"local"
"launchtype"
:
"local"
},
},
"default"
:
"default"
:
{
{
"launchtype"
:
"local"
"launchtype"
:
"local"
},
},
"type"
:
"uniCloud"
"type"
:
"uniCloud"
},
{
"bundleId"
:
"io.dcloud.test123456"
,
"certificateFile"
:
"/Users/lizhongyi/Desktop/文件/证书/dev_123.p12"
,
"certificateProfileFile"
:
"/Users/lizhongyi/Desktop/文件/证书/io_dcloud_test123456.mobileprovision"
,
"type"
:
"uni-app:app-ios"
}
}
]
]
}
}
manifest.json
浏览文件 @
929f308b
{
{
"name"
:
"uni-api"
,
"name"
:
"uni-api"
,
"appid"
:
"__UNI__4F60974"
,
"appid"
:
"__UNI__ED9218B"
,
"description"
:
""
,
"description"
:
""
,
"versionName"
:
"1.0.0"
,
"versionName"
:
"1.0.0"
,
"versionCode"
:
"100"
,
"versionCode"
:
"100"
,
"transformPx"
:
false
,
"transformPx"
:
false
,
/*
5
+App特有相关
*/
/*
5
+App特有相关
*/
"app-plus"
:
{
"app-plus"
:
{
"usingComponents"
:
true
,
"usingComponents"
:
true
,
"nvueStyleCompiler"
:
"uni-app"
,
"nvueStyleCompiler"
:
"uni-app"
,
"compilerVersion"
:
3
,
"compilerVersion"
:
3
,
"splashscreen"
:
{
"splashscreen"
:
{
"alwaysShowBeforeRender"
:
true
,
"alwaysShowBeforeRender"
:
true
,
"waiting"
:
true
,
"waiting"
:
true
,
"autoclose"
:
true
,
"autoclose"
:
true
,
"delay"
:
0
"delay"
:
0
},
},
/*
模块配置
*/
/*
模块配置
*/
"modules"
:
{},
"modules"
:
{},
/*
应用发布信息
*/
/*
应用发布信息
*/
"distribute"
:
{
"distribute"
:
{
/*
android打包配置
*/
/*
android打包配置
*/
"android"
:
{
"android"
:
{
"permissions"
:
[
"permissions"
:
[
"<uses-permission android:name=
\"
android.permission.CHANGE_NETWORK_STATE
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.CHANGE_NETWORK_STATE
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.VIBRATE
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.VIBRATE
\"
/>"
,
...
@@ -41,32 +41,32 @@
...
@@ -41,32 +41,32 @@
]
]
},
},
/*
ios打包配置
*/
/*
ios打包配置
*/
"ios"
:
{},
"ios"
:
{},
/*
SDK配置
*/
/*
SDK配置
*/
"sdkConfigs"
:
{}
"sdkConfigs"
:
{}
}
}
},
},
/*
快应用特有相关
*/
/*
快应用特有相关
*/
"quickapp"
:
{},
"quickapp"
:
{},
/*
小程序特有相关
*/
/*
小程序特有相关
*/
"mp-weixin"
:
{
"mp-weixin"
:
{
"appid"
:
""
,
"appid"
:
""
,
"setting"
:
{
"setting"
:
{
"urlCheck"
:
false
"urlCheck"
:
false
},
},
"usingComponents"
:
true
"usingComponents"
:
true
},
},
"mp-alipay"
:
{
"mp-alipay"
:
{
"usingComponents"
:
true
"usingComponents"
:
true
},
},
"mp-baidu"
:
{
"mp-baidu"
:
{
"usingComponents"
:
true
"usingComponents"
:
true
},
},
"mp-toutiao"
:
{
"mp-toutiao"
:
{
"usingComponents"
:
true
"usingComponents"
:
true
},
},
"uniStatistics"
:
{
"uniStatistics"
:
{
"enable"
:
false
"enable"
:
false
},
},
"vueVersion"
:
"2"
"vueVersion"
:
"2"
}
}
pages/index/index.vue
浏览文件 @
929f308b
...
@@ -9,6 +9,8 @@
...
@@ -9,6 +9,8 @@
<button
@
tap=
"testGetBatteryInfo"
>
获取电池电量
</button>
<button
@
tap=
"testGetBatteryInfo"
>
获取电池电量
</button>
<button
@
tap=
"testonMemoryWarning"
>
开启内存不足告警监听
</button>
<button
@
tap=
"testonMemoryWarning"
>
开启内存不足告警监听
</button>
<button
@
tap=
"testoffMemoryWarning"
>
关闭内存不足告警监听
</button>
<button
@
tap=
"testoffMemoryWarning"
>
关闭内存不足告警监听
</button>
<button
@
tap=
"testShowModal"
>
模态弹窗
</button>
<button
@
tap=
"testShowModalWithTF"
>
模态弹窗带输入框
</button>
<button
@
tap=
"testStartWifi"
>
初始化wifi模块
</button>
<button
@
tap=
"testStartWifi"
>
初始化wifi模块
</button>
<button
@
tap=
"testGetWifiList"
>
获取当前wifi列表
</button>
<button
@
tap=
"testGetWifiList"
>
获取当前wifi列表
</button>
...
@@ -19,85 +21,113 @@
...
@@ -19,85 +21,113 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
showModal
from
'
@/uni_modules/uni-showmodal
'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
title
:
'
Hello
'
,
title
:
'
Hello
'
,
memListener
:
null
,
memListener
:
null
,
}
}
},
},
onLoad
()
{
onLoad
()
{
},
},
methods
:
{
methods
:
{
onMemoryWarning
:
function
(
res
){
onMemoryWarning
:
function
(
res
)
{
console
.
log
(
res
);
console
.
log
(
res
);
},
},
testConnnectWifi
(){
testShowModal
()
{
showModal
({
title
:
"
温馨提示
"
,
content
:
"
这是一个模态弹窗
"
,
cancelColor
:
"
#ff0000
"
,
confirmColor
:
"
#00ff00
"
,
showCancel
:
true
,
success
:
function
(
res
)
{
console
.
log
(
res
)
}
})
},
testShowModalWithTF
()
{
showModal
({
title
:
"
提示
"
,
content
:
"
带输入框的弹窗
"
,
showCancel
:
false
,
editable
:
true
,
placeholderText
:
"
请输入内容
"
,
success
:
function
(
res
)
{
console
.
log
(
res
)
}
})
},
testConnnectWifi
()
{
uni
.
connectWifi
({
uni
.
connectWifi
({
maunal
:
false
,
maunal
:
false
,
SSID
:
"
Xiaomi_20D0
"
,
SSID
:
"
Xiaomi_20D0
"
,
password
:
"
BBBB
"
,
password
:
"
BBBB
"
,
complete
:
(
res
)
=>
{
complete
:
(
res
)
=>
{
console
.
log
(
res
);
console
.
log
(
res
);
}
}
});
});
},
},
testGetConnnectWifi
()
{
testGetConnnectWifi
()
{
uni
.
getConnectedWifi
({
uni
.
getConnectedWifi
({
partialInfo
:
false
,
partialInfo
:
false
,
complete
:
(
res
)
=>
{
complete
:
(
res
)
=>
{
console
.
log
(
res
);
console
.
log
(
res
);
if
(
res
.
errCode
==
0
)
{
if
(
res
.
errCode
==
0
)
{
uni
.
showToast
({
uni
.
showToast
({
icon
:
'
none
'
,
icon
:
'
none
'
,
title
:
res
.
wifi
.
SSID
title
:
res
.
wifi
.
SSID
})
})
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
icon
:
'
none
'
,
icon
:
'
none
'
,
title
:
res
.
errMsg
title
:
res
.
errMsg
})
})
}
}
}
}
});
});
},
},
testStartWifi
()
{
testStartWifi
()
{
uni
.
startWifi
({
uni
.
startWifi
({
success
:
(
res
)
=>
{
success
:
(
res
)
=>
{
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
// wifi 开启成功后,注册wifi链接状态监听和wifi列表获取监听
// wifi 开启成功后,注册wifi链接状态监听和wifi列表获取监听
uni
.
onGetWifiList
(
function
(
res
)
{
uni
.
onGetWifiList
(
function
(
res
)
{
console
.
log
(
"
onGetWifiList
"
);
console
.
log
(
"
onGetWifiList
"
);
console
.
log
(
res
);
console
.
log
(
res
);
});
});
uni
.
onWifiConnected
(
function
(
res
)
{
uni
.
onWifiConnected
(
function
(
res
)
{
console
.
log
(
"
onWifiConnected
"
);
console
.
log
(
"
onWifiConnected
"
);
console
.
log
(
res
);
console
.
log
(
res
);
});
});
uni
.
onWifiConnectedWithPartialInfo
(
function
(
res
)
{
uni
.
onWifiConnectedWithPartialInfo
(
function
(
res
)
{
console
.
log
(
"
onWifiConnectedWithPartialInfo
"
);
console
.
log
(
"
onWifiConnectedWithPartialInfo
"
);
console
.
log
(
res
);
console
.
log
(
res
);
});
});
},
fail
:(
res
)
=>
{
},
fail
:
(
res
)
=>
{
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
},
complete
:(
res
)
=>
{
},
complete
:
(
res
)
=>
{
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
}
}
})
})
},
},
testStopWifi
()
{
testStopWifi
()
{
uni
.
stopWifi
({
uni
.
stopWifi
({
success
:
(
res
)
=>
{
success
:
(
res
)
=>
{
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
},
fail
:(
res
)
=>
{
},
fail
:
(
res
)
=>
{
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
},
complete
:(
res
)
=>
{
},
complete
:
(
res
)
=>
{
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
}
}
})
})
...
@@ -105,11 +135,13 @@
...
@@ -105,11 +135,13 @@
},
},
testGetWifiList
()
{
testGetWifiList
()
{
uni
.
getWifiList
({
uni
.
getWifiList
({
success
:
(
res
)
=>
{
success
:
(
res
)
=>
{
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
},
fail
:(
res
)
=>
{
},
fail
:
(
res
)
=>
{
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
},
complete
:(
res
)
=>
{
},
complete
:
(
res
)
=>
{
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
}
}
})
})
...
@@ -118,15 +150,15 @@
...
@@ -118,15 +150,15 @@
testonMemoryWarning
()
{
testonMemoryWarning
()
{
uni
.
onMemoryWarning
(
this
.
onMemoryWarning
)
uni
.
onMemoryWarning
(
this
.
onMemoryWarning
)
uni
.
showToast
({
uni
.
showToast
({
icon
:
'
none
'
,
icon
:
'
none
'
,
title
:
'
已监听,注意控制台输出
'
title
:
'
已监听,注意控制台输出
'
})
})
},
},
testoffMemoryWarning
()
{
testoffMemoryWarning
()
{
uni
.
offMemoryWarning
(
this
.
onMemoryWarning
)
uni
.
offMemoryWarning
(
this
.
onMemoryWarning
)
uni
.
showToast
({
uni
.
showToast
({
icon
:
'
none
'
,
icon
:
'
none
'
,
title
:
'
监听已移除
'
title
:
'
监听已移除
'
})
})
},
},
testScreenShotListen
()
{
testScreenShotListen
()
{
...
@@ -136,26 +168,26 @@
...
@@ -136,26 +168,26 @@
if
(
uni
.
getSystemInfoSync
().
platform
==
"
android
"
)
{
if
(
uni
.
getSystemInfoSync
().
platform
==
"
android
"
)
{
// 除android 之外的平台,不需要判断返回状态码
// 除android 之外的平台,不需要判断返回状态码
if
(
res
.
errCode
==
-
1
){
if
(
res
.
errCode
==
-
1
)
{
// 启动失败
// 启动失败
return
;
return
;
}
else
if
(
res
.
errCode
==
0
){
}
else
if
(
res
.
errCode
==
0
)
{
uni
.
showToast
({
uni
.
showToast
({
icon
:
"
none
"
,
icon
:
"
none
"
,
title
:
'
截屏监听已开启
'
title
:
'
截屏监听已开启
'
})
})
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
icon
:
"
none
"
,
icon
:
"
none
"
,
title
:
'
捕获截屏事件
'
title
:
'
捕获截屏事件
'
})
})
that
.
screenImage
=
res
.
image
that
.
screenImage
=
res
.
image
}
}
}
else
{
}
else
{
// 除android 之外的平台,不需要判断返回状态码
// 除android 之外的平台,不需要判断返回状态码
uni
.
showToast
({
uni
.
showToast
({
icon
:
"
none
"
,
icon
:
"
none
"
,
title
:
'
捕获截屏事件
'
title
:
'
捕获截屏事件
'
})
})
}
}
...
@@ -164,8 +196,8 @@
...
@@ -164,8 +196,8 @@
if
(
uni
.
getSystemInfoSync
().
platform
!=
"
android
"
)
{
if
(
uni
.
getSystemInfoSync
().
platform
!=
"
android
"
)
{
// 除android 之外的平台,直接提示监听已开启
// 除android 之外的平台,直接提示监听已开启
uni
.
showToast
({
uni
.
showToast
({
icon
:
"
none
"
,
icon
:
"
none
"
,
title
:
'
截屏监听已开启
'
title
:
'
截屏监听已开启
'
})
})
}
}
},
},
...
@@ -175,8 +207,8 @@
...
@@ -175,8 +207,8 @@
});
});
// 提示已经开始监听,注意观察
// 提示已经开始监听,注意观察
uni
.
showToast
({
uni
.
showToast
({
icon
:
"
none
"
,
icon
:
"
none
"
,
title
:
'
截屏监听已关闭
'
title
:
'
截屏监听已关闭
'
})
})
},
},
testGetBatteryInfo
()
{
testGetBatteryInfo
()
{
...
...
uni_modules/uni-showmodal/changelog.md
0 → 100644
浏览文件 @
929f308b
uni_modules/uni-showmodal/package.json
0 → 100644
浏览文件 @
929f308b
{
"id"
:
"uni-showmodal"
,
"displayName"
:
"uni-showmodal"
,
"version"
:
"1.0.0"
,
"description"
:
"uni-showmodal"
,
"keywords"
:
[
"uni-showmodal"
],
"repository"
:
""
,
"engines"
:
{
"HBuilderX"
:
"^3.6.8"
},
"dcloudext"
:
{
"type"
:
"uts"
,
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
""
,
"data"
:
""
,
"permissions"
:
""
},
"npmurl"
:
""
},
"uni_modules"
:
{
"dependencies"
:
[],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"u"
,
"aliyun"
:
"u"
},
"client"
:
{
"Vue"
:
{
"vue2"
:
"u"
,
"vue3"
:
"u"
},
"App"
:
{
"app-android"
:
"u"
,
"app-ios"
:
"u"
},
"H5-mobile"
:
{
"Safari"
:
"u"
,
"Android Browser"
:
"u"
,
"微信浏览器(Android)"
:
"u"
,
"QQ浏览器(Android)"
:
"u"
},
"H5-pc"
:
{
"Chrome"
:
"u"
,
"IE"
:
"u"
,
"Edge"
:
"u"
,
"Firefox"
:
"u"
,
"Safari"
:
"u"
},
"小程序"
:
{
"微信"
:
"u"
,
"阿里"
:
"u"
,
"百度"
:
"u"
,
"字节跳动"
:
"u"
,
"QQ"
:
"u"
,
"钉钉"
:
"u"
,
"快手"
:
"u"
,
"飞书"
:
"u"
,
"京东"
:
"u"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
}
\ No newline at end of file
uni_modules/uni-showmodal/readme.md
0 → 100644
浏览文件 @
929f308b
# uni-showmodal
### 开发文档
[
UTS 语法
](
https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html
)
[
UTS 原生插件
](
https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
)
[
Hello UTS
](
https://gitcode.net/dcloud/hello-uts/-/tree/dev
)
\ No newline at end of file
uni_modules/uni-showmodal/utssdk/app-android/index.uts
0 → 100644
浏览文件 @
929f308b
uni_modules/uni-showmodal/utssdk/app-ios/index.uts
0 → 100644
浏览文件 @
929f308b
import { UIAlertController, UIAlertAction, UITextField } from "UIKit"
import { UTSiOS } from "DCloudUTSFoundation"
import { DispatchQueue } from 'Dispatch';
type ShowModalResult = {
errCode: number,
errSubject: string,
errMsg: string,
confirm: boolean,
cancel: boolean,
content: string
}
type ShowModalOptions = {
title?: string,
content?: string,
showCancel: boolean,
cancelText?: string,
cancelColor?: string,
confirmText?: string,
confirmColor?: string,
editable: boolean,
placeholderText?: string,
success?: (res: ShowModalResult) => void,
fail?: (res: ShowModalResult) => void,
complete?: (res: ShowModalResult) => void
}
export default function showModal(options: ShowModalOptions) {
const title = options.title == null ? "" : options.title!
const message = options.content == null ? "" : options.content!
const showCancel = options.showCancel == null ? true : (options.showCancel != false)
const cancelText = options.cancelText == null ? "取消" : options.cancelText!
const confirmText = options.confirmText == null ? "确定" : options.confirmText!
const canEidt = options.editable == true
const placeholderText = options.placeholderText == null ? "" : options.placeholderText!
// uts方法默认会在子线程中执行,涉及 UI 操作必须在主线程中运行,通过 DispatchQueue.main.async 方法可将代码在主线程中运行
DispatchQueue.main.async(execute = (): void => {
// 初始化 UIAlertController 实例对象 alert
let alert = new UIAlertController(title = title, message = message, preferredStyle = UIAlertController.Style.alert)
if (canEidt == true) {
// 在 alert 上添加输入框
console.log("需要加上输入框")
alert.addTextField(configurationHandler = (tf: UITextField): void => {
// 添加成功的回调
// 设置输入框的 placeholder
tf.placeholder = placeholderText
})
}
// 创建 UIAlertAction 按钮
let okAction = new UIAlertAction(title = confirmText, style = UIAlertAction.Style.default, handler = (action: UIAlertAction): void => {
// 获取输入框中的内容
let inputText = ""
if (canEidt == true) {
let tf = alert.textFields?.[0]
if (tf != null) {
inputText = tf!.text != null ? tf!.text! : ""
}
}
// 点击按钮的回调方法
const res = new ShowModalResult()
res.errCode = 0
res.errSubject = ""
res.errMsg = ""
res.confirm = false
res.cancel = true
res.content = inputText
options.success?.(res)
options.complete?.(res)
})
if (options.confirmColor != null) {
const color = UTSiOS.colorWithString(options.confirmColor!)
okAction.setValue(color, forKey = "titleTextColor")
}
// 将 UIAlertAction 添加到 alert 上
alert.addAction(okAction)
if (showCancel == true) {
// 创建 UIAlertAction 按钮
let cancelAction = new UIAlertAction(title = cancelText, style = UIAlertAction.Style.cancel, handler = (action: UIAlertAction): void => {
// 点击按钮的回调方法
const res = new ShowModalResult()
res.errCode = 0
res.errSubject = ""
res.errMsg = ""
res.confirm = false
res.cancel = true
res.content = ""
options.success?.(res)
options.complete?.(res)
})
if (options.cancelColor != null) {
const color = UTSiOS.colorWithString(options.cancelColor!)
cancelAction.setValue(color, forKey = "titleTextColor")
}
alert.addAction(cancelAction)
}
// 打开 alert 弹窗
UTSiOS.getCurrentViewController().present(alert, animated = true)
})
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录