Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
Hello UTS
提交
ac7c73db
H
Hello UTS
项目概览
DCloud
/
Hello UTS
通知
1595
Star
27
Fork
9
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
Hello UTS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ac7c73db
编写于
7月 15, 2023
作者:
lizhongyi_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UTSiOS测试用例添加
上级
9afad088
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
719 addition
and
1 deletion
+719
-1
pages/SyntaxCase/utsiOS.vue
pages/SyntaxCase/utsiOS.vue
+157
-1
uni_modules/uts-advance/utssdk/app-ios/index.uts
uni_modules/uts-advance/utssdk/app-ios/index.uts
+2
-0
uni_modules/uts-platform-api/utssdk/app-ios/index.uts
uni_modules/uts-platform-api/utssdk/app-ios/index.uts
+560
-0
未找到文件。
pages/SyntaxCase/utsiOS.vue
浏览文件 @
ac7c73db
<
template
>
<view>
<button
@
click=
"testCurrentVC"
>
获取当前UIViewController
</button>
<view
class=
"result"
:style=
"resultStyle(currentVCResult.passed)"
>
测试结果 --
{{
formatResult
(
currentVCResult
.
passed
)
}}
</view>
<button
@
click=
"testKeyWindow"
>
获取当前app的keyWindow
</button>
<view
class=
"result"
:style=
"resultStyle(keyWindowResult.passed)"
>
测试结果 --
{{
formatResult
(
keyWindowResult
.
passed
)
}}
</view>
<button
@
click=
"testColorConvert"
>
将字符串色值转换为UIColor
</button>
<view
class=
"result"
>
<p
v-for=
"item in colorConvertResult"
:style=
"resultStyle(item.passed)"
>
{{
item
.
key
}}
:
{{
item
.
value
}}
--
{{
formatResult
(
item
.
passed
)
}}
</p>
</view>
<button
@
click=
"testResourcePath"
>
资源路径转换
</button>
<view
class=
"result"
:style=
"resultStyle(resourcePathResult.passed)"
>
{{
resourcePathResult
.
key
}}
:
{{
resourcePathResult
.
value
}}
--
{{
formatResult
(
resourcePathResult
.
passed
)
}}
</view>
<button
@
click=
"testDeviceInfo"
>
获取设备信息
</button>
<view
class=
"result"
>
<p
v-for=
"item in deviceInfoResult"
:style=
"resultStyle(item.passed)"
>
{{
item
.
key
}}
:
{{
item
.
value
}}
--
{{
formatResult
(
item
.
passed
)
}}
</p>
</view>
<button
@
click=
"testAppInfo"
>
获取App信息相关api
</button>
<view
class=
"result"
>
<p
v-for=
"item in appInfoResult"
:style=
"resultStyle(item.passed)"
>
{{
item
.
key
}}
:
{{
item
.
value
}}
--
{{
formatResult
(
item
.
passed
)
}}
</p>
</view>
<button
@
click=
"testSystemSetting"
>
获取系统设置
</button>
<view
class=
"result"
:style=
"resultStyle(systemSettingResult.passed)"
>
{{
systemSettingResult
.
key
}}
:
{{
systemSettingResult
.
value
}}
--
{{
formatResult
(
systemSettingResult
.
passed
)
}}
</view>
<button
@
click=
"testTypeof"
>
typeof
</button>
<view
class=
"result"
>
<p
v-for=
"item in typeofResult"
:style=
"resultStyle(item.passed)"
>
{{
item
.
key
}}
:
{{
item
.
value
}}
--
{{
formatResult
(
item
.
passed
)
}}
</p>
</view>
<button
@
click=
"testDataConvert"
>
数据转换
</button>
<view
class=
"result"
>
<p
v-for=
"item in dataConvertResult"
:style=
"resultStyle(item.passed)"
>
{{
item
.
key
}}
:
{{
item
.
value
}}
--
{{
formatResult
(
item
.
passed
)
}}
</p>
</view>
<button
@
click=
"testAll"
>
test all
</button>
</view>
</
template
>
<
script
>
import
{
getCurrentVCTest
,
getKeyWindowTest
,
colorWithStringTest
,
getResourcePathTest
,
getDeviceInfoTest
,
getAppInfoTest
,
getSystemSettingTest
,
tepeofTest
,
dataConvertTest
,
}
from
"
@/uni_modules/uts-platform-api
"
export
default
{
data
()
{
return
{
title
:
"
UTSiOS test
"
,
currentVCResult
:
{},
keyWindowResult
:
{},
colorConvertResult
:
[],
resourcePathResult
:
{},
deviceInfoResult
:
[],
appInfoResult
:
[],
systemSettingResult
:
{},
typeofResult
:
[],
dataConvertResult
:
[]
}
},
methods
:
{
formatResult
(
res
)
{
if
(
res
==
null
)
{
return
""
;
}
return
res
?
"
测试通过
"
:
"
测试失败
"
},
resultStyle
(
res
)
{
if
(
res
==
null
)
{
return
{
color
:
"
#333333
"
}
}
let
color
=
res
?
"
#00ff00
"
:
"
#ff0000
"
;
return
{
color
:
color
}
},
testCurrentVC
()
{
this
.
currentVCResult
=
getCurrentVCTest
();
},
testKeyWindow
()
{
this
.
keyWindowResult
=
getKeyWindowTest
();
},
testColorConvert
()
{
let
array
=
colorWithStringTest
();
this
.
colorConvertResult
=
array
.
map
((
value
)
=>
{
return
JSON
.
parse
(
value
)
})
},
testResourcePath
()
{
this
.
resourcePathResult
=
getResourcePathTest
(
"
/static/logo.png
"
);
},
testDeviceInfo
()
{
let
array
=
getDeviceInfoTest
();
this
.
deviceInfoResult
=
array
.
map
((
value
)
=>
{
return
JSON
.
parse
(
value
)
})
},
testAppInfo
()
{
let
array
=
getAppInfoTest
();
this
.
appInfoResult
=
array
.
map
((
value
)
=>
{
return
JSON
.
parse
(
value
)
})
},
testSystemSetting
()
{
this
.
systemSettingResult
=
getSystemSettingTest
();
},
testTypeof
()
{
let
array
=
tepeofTest
();
this
.
typeofResult
=
array
.
map
((
value
)
=>
{
return
JSON
.
parse
(
value
)
})
},
testDataConvert
()
{
let
array
=
dataConvertTest
();
this
.
dataConvertResult
=
array
.
map
((
value
)
=>
{
return
JSON
.
parse
(
value
)
})
},
testAll
()
{
this
.
testCurrentVC
();
this
.
testKeyWindow
();
this
.
testColorConvert
();
this
.
testResourcePath
();
this
.
testDeviceInfo
();
this
.
testAppInfo
();
this
.
testSystemSetting
();
this
.
testTypeof
();
this
.
testDataConvert
();
}
}
}
</
script
>
<
style
>
<
style
scoped
>
.result
{
text-align
:
left
;
padding-left
:
20px
;
padding-right
:
20px
;
max-width
:
100%
;
overflow
:
auto
;
overflow-wrap
:
normal
;
}
</
style
>
\ No newline at end of file
uni_modules/uts-advance/utssdk/app-ios/index.uts
浏览文件 @
ac7c73db
import { UIImageView , UIImage , UIScreen } from 'UIKit';
import { DispatchQueue } from 'Dispatch';
import { UTSiOS } from "DCloudUTSFoundation";
export function addViewToDecorView() { }
export function removeViewToDecorView() { }
export function initAppLifecycle() { }
...
...
uni_modules/uts-platform-api/utssdk/app-ios/index.uts
浏览文件 @
ac7c73db
import { UTSiOS } from "DCloudUTSFoundation";
import { UIColor } from 'UIKit';
import { NSNumber } from 'Foundation';
export type UTSiOSTestResult = {
key: string,
value: string | null,
passed: boolean
}
export type UTSiOSTestCompleteCallback = (res: UTSiOSTestResult[]) => void;
export type UTSiOSTestOptions = {
complete: UTSiOSTestCompleteCallback
}
/* 获取当前控制器 */
export function getCurrentVCTest(): UTSiOSTestResult {
let vc = UTSiOS.getCurrentViewController()
let res: UTSiOSTestResult = {
key: "",
value: "",
passed: false
}
if (vc != null) {
res.passed = true;
}
return res;
}
/* 获取keyWindow */
export function getKeyWindowTest(): UTSiOSTestResult {
let window = UTSiOS.getKeyWindow()
let res: UTSiOSTestResult = {
key: "",
value: "",
passed: false
}
if (window != null) {
res.passed = true;
}
return res;
}
/* 颜色转换 */
export function colorWithStringTest(): string[] {
let results: string[] = [];
let red0 = UTSiOS.colorWithString("#f00")
let res0: UTSiOSTestResult = {
key: "#f00",
value: "",
passed: false
}
if (red0 != UIColor.black) {
res0.passed = true
}
results.push(JSON.stringify(res0)!)
let red1 = UTSiOS.colorWithString("#ff0000")
let res1: UTSiOSTestResult = {
key: "ff0000",
value: "",
passed: false
}
if (red1 != UIColor.black) {
res1.passed = true;
}
results.push(JSON.stringify(res1)!)
let red2 = UTSiOS.colorWithString("rgb(255, 0, 0)")
let res2: UTSiOSTestResult = {
key: "rgb(255, 0, 0)",
value: "",
passed: false
}
if (red2 != UIColor.black) {
res2.passed = true
}
results.push(JSON.stringify(res2)!)
let red3 = UTSiOS.colorWithString("rgba(255, 0, 0, 0.5)")
let res3: UTSiOSTestResult = {
key: "rgba(255, 0, 0, 0.5)",
value: "",
passed: false
}
if (red3 != UIColor.black) {
res3.passed = true
}
results.push(JSON.stringify(res3)!)
return results;
}
/* 资源路径转换 */
export function getResourcePathTest(value: string): UTSiOSTestResult {
let src = UTSiOS.getResourcePath(value)
let res: UTSiOSTestResult = {
key: "转换后路径",
value: src,
passed: false
}
if (src != null) {
res.passed = true;
}
return res;
}
/* 是否是模拟器 */
function isSimulatorTest(): UTSiOSTestResult {
let ret = UTSiOS.isSimulator()
let res: UTSiOSTestResult = {
key: "当前是",
value: ret ? "模拟器": "真机",
passed: true
}
return res;
}
/* 获取deviceId */
function getDeviceIdTest(): UTSiOSTestResult {
let ret = UTSiOS.getDeviceId()
let res: UTSiOSTestResult = {
key: "deviceId",
value: ret,
passed: true
}
return res;
}
/* 获取设备型号 */
function getModelTest(): UTSiOSTestResult {
let ret = UTSiOS.getModel()
let res: UTSiOSTestResult = {
key: "设备型号 model",
value: ret,
passed: true
}
return res;
}
/* 获取userAgent */
function getUserAgentTest(): UTSiOSTestResult {
let ret = UTSiOS.getUserAgent()
let res: UTSiOSTestResult = {
key: "userAgent",
value: ret,
passed: true
}
return res;
}
/* 获取设备信息 */
export function getDeviceInfoTest(): string[] {
let results: string[] = [];
let simaluteRes = isSimulatorTest();
let deviceIDRes = getDeviceIdTest();
let modeRes = getModelTest();
let userSgentRes = getUserAgentTest()
results.push(JSON.stringify(simaluteRes)!);
results.push(JSON.stringify(deviceIDRes)!);
results.push(JSON.stringify(modeRes)!);
results.push(JSON.stringify(userSgentRes)!);
return results;
}
/* 获取当前运行的AppId */
function getAppIdTest(): UTSiOSTestResult {
let ret = UTSiOS.getAppId()
let res: UTSiOSTestResult = {
key: "AppID",
value: ret,
passed: true
}
return res;
}
/* 获取当前运行app的dataPath */
function getDataPathTest(): UTSiOSTestResult {
let ret = UTSiOS.getDataPath()
let res: UTSiOSTestResult = {
key: "dataPath",
value: ret,
passed: true
}
return res;
}
/* 是否是unimp */
function isUniMpTest(): UTSiOSTestResult {
let ret = UTSiOS.isUniMp()
let res: UTSiOSTestResult = {
key: "当前是",
value: ret ? "小程序" : "app",
passed: true
}
return res;
}
/* manifest.json 中应用名称 */
function getAppNameTest(): UTSiOSTestResult {
let ret = UTSiOS.getAppName()
let res: UTSiOSTestResult = {
key: "appName",
value: ret,
passed: true
}
return res;
}
/* manifest.json 中应用版本名称 */
function getAppVersionTest(): UTSiOSTestResult {
let ret = UTSiOS.getAppVersion()
let res: UTSiOSTestResult = {
key: "appVersion",
value: ret,
passed: true
}
return res;
}
/* manifest.json 中应用版本号 */
function getAppVersionCodeTest(): UTSiOSTestResult {
let ret = UTSiOS.getAppVersionCode()
let res: UTSiOSTestResult = {
key: "appVersionCode",
value: ret,
passed: true
}
return res;
}
/* os language */
function getOsLanguageTest(): UTSiOSTestResult {
let ret = UTSiOS.getOsLanguage()
let res: UTSiOSTestResult = {
key: "osLanguage",
value: ret,
passed: true
}
return res;
}
/* 应用资源(wgt)的版本名称 */
function getAppWgtVersionTest(): UTSiOSTestResult {
let ret = UTSiOS.getAppWgtVersion()
let res: UTSiOSTestResult = {
key: "wgtVersion",
value: ret,
passed: true
}
return res;
}
/* 小程序宿主语言 */
function getHostLanguageTest(): UTSiOSTestResult {
let ret = UTSiOS.getHostLanguage()
let res: UTSiOSTestResult = {
key: "hostLanguage",
value: ret,
passed: true
}
return res;
}
/* App、小程序宿主版本 */
function getHostVersionTest(): UTSiOSTestResult {
let ret = UTSiOS.getHostVersion()
let res: UTSiOSTestResult = {
key: "hostVersion",
value: ret,
passed: true
}
return res;
}
/* 小程序宿主名称 */
function getHostNameTest(): UTSiOSTestResult {
let ret = UTSiOS.getHostName()
let res: UTSiOSTestResult = {
key: "hostName",
value: ret,
passed: true
}
return res;
}
/* 小程序宿主包名 */
function getHostPackageNameTest(): UTSiOSTestResult {
let ret = UTSiOS.getHostPackageName()
let res: UTSiOSTestResult = {
key: "hostPackageName",
value: ret,
passed: true
}
return res;
}
/* 系统当前主题,取值为light或dark。微信小程序全局配置"darkmode":true时才能获取,否则为 undefined (不支持小游戏) */
function getHostThemeTest(): UTSiOSTestResult {
let ret = UTSiOS.getHostTheme()
let res: UTSiOSTestResult = {
key: "hostTheme",
value: ret,
passed: true
}
return res;
}
/* 引擎版本号 */
function getInnerVersionTest(): UTSiOSTestResult {
let ret = UTSiOS.getInnerVersion()
let res: UTSiOSTestResult = {
key: "innerVersion",
value: ret,
passed: true
}
return res;
}
/* 获取App相关信息 */
export function getAppInfoTest(): string[] {
let results: string[] = [];
let appIdRes = getAppIdTest();
let dataPathRes = getDataPathTest();
let uniMpRes = isUniMpTest();
let appNameRes = getAppNameTest();
let appVersionRes = getAppVersionTest();
let appVersionCodeRes = getAppVersionCodeTest();
let osLanguageRes = getOsLanguageTest();
let wgtVersionRes = getAppWgtVersionTest();
let hostLanguageRes = getHostLanguageTest();
let hostVersionRes = getHostVersionTest();
let hostNameRes = getHostNameTest();
let hostPackageRes = getHostPackageNameTest();
let hostThemeRes = getHostThemeTest();
let innerVersionRes = getInnerVersionTest();
results.push(JSON.stringify(appIdRes)!);
results.push(JSON.stringify(dataPathRes)!);
results.push(JSON.stringify(uniMpRes)!);
results.push(JSON.stringify(appNameRes)!);
results.push(JSON.stringify(appVersionRes)!);
results.push(JSON.stringify(appVersionCodeRes)!);
results.push(JSON.stringify(osLanguageRes)!);
results.push(JSON.stringify(wgtVersionRes)!);
results.push(JSON.stringify(hostLanguageRes)!);
results.push(JSON.stringify(hostVersionRes)!);
results.push(JSON.stringify(hostNameRes)!);
results.push(JSON.stringify(hostPackageRes)!);
results.push(JSON.stringify(hostThemeRes)!);
results.push(JSON.stringify(innerVersionRes)!);
return results;
}
/* 获取系统设置 */
export function getSystemSettingTest(): UTSiOSTestResult {
let ret = UTSiOS.getSystemSetting()
let res: UTSiOSTestResult = {
key: "systemSetting",
value: JSON.stringify(ret) ?? "",
passed: true
}
return res;
}
/* 将数据转换为 string */
function convertStringTest(): UTSiOSTestResult {
let ret = UTSiOS.convertString(123)
let res: UTSiOSTestResult = {
key: "123转成字符串",
value: ret,
passed: true
}
return res;
}
/* 将数据转换为 bool */
function convertBoolTest(): UTSiOSTestResult {
let ret: boolean = UTSiOS.convertBool(1)
let res: UTSiOSTestResult = {
key: "1转成boolean",
value: `${ret}`,
passed: true
}
return res;
}
/* 将数据转换为 NSNumber */
function convertNumberTest(): UTSiOSTestResult {
let ret: NSNumber = UTSiOS.convertNumber(1000)
let res: UTSiOSTestResult = {
key: "1000 转成number",
value: `${ret.intValue}`,
passed: true
}
return res;
}
/* 将数据转换为 Double */
function convertDoubleTest(): UTSiOSTestResult {
let ret = UTSiOS.convertDouble("123.1")
let res: UTSiOSTestResult = {
key: "字符串123.1转成double",
value: `${ret}`,
passed: true
}
return res;
}
/* 将数据转换为 Float */
function convertFloatTest(): UTSiOSTestResult {
let ret = UTSiOS.convertFloat("123")
let res: UTSiOSTestResult = {
key: "字符串123转成float",
value: `${ret}`,
passed: true
}
return res;
}
/* 将数据转换为 int */
function convertIntTest(): UTSiOSTestResult {
let ret = UTSiOS.convertInt("123.0")
let res: UTSiOSTestResult = {
key: "123.0转成int",
value: `${ret}`,
passed: true
}
return res;
}
/* 将数据转换为 Array */
function convertArrayTest(): UTSiOSTestResult {
let ret = UTSiOS.convertArray([1, "2", "3", "abc"])
let res: UTSiOSTestResult = {
key: `${JSON.stringify([1, "2", "3", "abc"])}转成数组`,
value: `${ret}`,
passed: true
}
return res;
}
/* 将数据转换为 Dictionary */
function convertDictionaryTest(): UTSiOSTestResult {
let map: Map<string, number> = new Map();
map.set("no", 1)
map.set('age', 10)
let ret = UTSiOS.convertDictionary(map)
let res: UTSiOSTestResult = {
key: `${JSON.stringify(map)}转成dictionary`,
value: `${ret}`,
passed: true
}
return res;
}
/* 数据转换测试 */
export function dataConvertTest(): string[] {
let results: string[] = [];
let strRes = convertStringTest();
let boolRes = convertBoolTest();
let numberRes = convertNumberTest();
let doubleRes = convertDoubleTest();
let floatRes = convertFloatTest();
let intRes = convertIntTest();
let arrayRes = convertArrayTest();
let dicRes = convertDictionaryTest();
results.push(JSON.stringify(strRes)!);
results.push(JSON.stringify(boolRes)!);
results.push(JSON.stringify(numberRes)!);
results.push(JSON.stringify(doubleRes)!);
results.push(JSON.stringify(floatRes)!);
results.push(JSON.stringify(intRes)!);
results.push(JSON.stringify(arrayRes)!);
results.push(JSON.stringify(dicRes)!);
return results;
}
export function tepeofTest(): string[] {
let results: string[] = [];
let str0 = UTSiOS.typeof("uts is cool")
let res0: UTSiOSTestResult = {
key: "uts is cool类型是",
value: str0,
passed: false
}
if (str0 == "string") {
res0.passed = true
}
results.push(JSON.stringify(res0)!)
let str1 = UTSiOS.typeof(true)
let res1: UTSiOSTestResult = {
key: "true类型是",
value: str1,
passed: false
}
if (str1 == "boolean") {
res1.passed = true
}
results.push(JSON.stringify(res1)!)
let str2 = UTSiOS.typeof(2)
let res2: UTSiOSTestResult = {
key: "2类型是",
value: str2,
passed: false
}
if (str2 == "number") {
res2.passed = true
}
results.push(JSON.stringify(res2)!)
let str3 = UTSiOS.typeof(res2)
let res3: UTSiOSTestResult = {
key: `${JSON.stringify(res2)}类型是`,
value: str3,
passed: false
}
if (str3 == "object") {
res3.passed = true
}
results.push(JSON.stringify(res3)!)
return results;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录