提交 fafc1265 编写于 作者: 杜庆泉's avatar 杜庆泉

增加参数传递测试用例

上级 27f25d2c
...@@ -142,8 +142,19 @@ ...@@ -142,8 +142,19 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
},
{
"path" : "pages/SyntaxCase/paramTest",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
} }
], ],
"tabBar": { "tabBar": {
"color": "#7A7E83", "color": "#7A7E83",
......
<template>
<button @click="inputArrayTest">传入数组参数</button>
<button @click="inputParamTest">传入复杂对象参数</button>
<button @click="returnArrayTest">返回数组参数</button>
<button @click="returnParamTest">返回复杂对象参数</button>
<button @click="callbackArrayTest">异步返回数组</button>
<button @click="callbackParamTest">异步返回复杂对象</button>
</template>
<script>
import {
inputArray,
inputParam,
returnArray,
returnParam,
callbackArray,
callbackParam
} from '../../uni_modules/uts-advance'
export default {
data() {
return {}
},
methods: {
inputArrayTest() {
let ret = inputArray(['a', 'b', 'c'])
if (ret) {
uni.showToast({
title: '测试通过'
})
}
},
inputParamTest() {
let ret = inputParam({
title: "hello",
array: [1, 2, 3]
})
if (ret) {
uni.showToast({
title: '测试通过'
})
}
},
returnArrayTest() {
let ret = returnArray()
if ('["1","2","3"]' == JSON.stringify(ret)) {
uni.showToast({
title: '测试通过'
})
}
},
returnParamTest() {
let ret = returnParam()
if ('{"title":"returnParam","array":["1","2","3"]}' == JSON.stringify(ret)) {
uni.showToast({
title: '测试通过'
})
}
},
callbackArrayTest() {
callbackArray(function(res) {
if ('["8","8","8"]' == JSON.stringify(res)) {
uni.showToast({
title: '测试通过'
})
}
});
},
callbackParamTest() {
callbackParam(function(res) {
if ('{"title":"callbackParam","array":["4","5","6"]}' == JSON.stringify(res)) {
uni.showToast({
title: '测试通过'
})
}
});
}
}
}
</script>
<style>
</style>
\ No newline at end of file
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
<uni-list> <uni-list>
<uni-list-item @tap="testSyntax" title="进阶语法示例" :clickable="true" link> <uni-list-item @tap="testSyntax" title="进阶语法示例" :clickable="true" link>
</uni-list-item> </uni-list-item>
<uni-list-item @tap="testParams" title="参数传递示例" :clickable="true" link>
</uni-list-item>
</uni-list> </uni-list>
</uni-collapse-item> </uni-collapse-item>
<uni-collapse-item title="资源加载示例" :border="false"> <uni-collapse-item title="资源加载示例" :border="false">
...@@ -180,6 +182,11 @@ ...@@ -180,6 +182,11 @@
url: '/pages/SyntaxCase/index' url: '/pages/SyntaxCase/index'
}) })
}, },
testParams: function() {
uni.navigateTo({
url: '/pages/SyntaxCase/paramTest'
})
},
testGetResourcePath: function() { testGetResourcePath: function() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/advance/iOS/getResourcePath' url: '/pages/advance/iOS/getResourcePath'
......
...@@ -25,6 +25,7 @@ import EditText from 'android.widget.EditText'; ...@@ -25,6 +25,7 @@ import EditText from 'android.widget.EditText';
import { import {
UTSAndroid UTSAndroid
} from "io.dcloud.uts"; } from "io.dcloud.uts";
import array from 'android.R.array';
...@@ -36,47 +37,47 @@ type TimerOptions = { ...@@ -36,47 +37,47 @@ type TimerOptions = {
* 定时任务开始的回调 * 定时任务开始的回调
* @res 回调参数 * @res 回调参数
*/ */
start: (res: string) => void; start : (res : string) => void;
/** /**
* 定时任务执行的回调 * 定时任务执行的回调
* @res 回调参数 * @res 回调参数
*/ */
work: (res: string) => void; work : (res : string) => void;
}; };
/** /**
* 执行延时任务 * 执行延时任务
*/ */
export function doTimerTask(opts:TimerOptions) { export function doTimerTask(opts : TimerOptions) {
opts.start('doTimerTask start'); opts.start('doTimerTask start');
setTimeout(function() { setTimeout(function () {
opts.work("doTimerTask work"); opts.work("doTimerTask work");
}, 2000); }, 2000);
return { name: "doTimerTask" }; return { name: "doTimerTask" };
} }
/** /**
* 执行周期任务 * 执行周期任务
*/ */
export function doIntervalTask(opts:TimerOptions) { export function doIntervalTask(opts : TimerOptions) {
let taskRet = setInterval(function() { let taskRet = setInterval(function () {
opts.work("doIntervalTask work"); opts.work("doIntervalTask work");
}, 2000); }, 2000);
opts.start('doIntervalTask start'); opts.start('doIntervalTask start');
return { name: "doIntervalTask",taskId:taskRet}; return { name: "doIntervalTask", taskId: taskRet };
} }
/** /**
* 清除周期任务 * 清除周期任务
*/ */
export function clearIntervalTask(taskId:number) { export function clearIntervalTask(taskId : number) {
clearInterval(taskId); clearInterval(taskId);
return { name: "clearIntervalTask"}; return { name: "clearIntervalTask" };
} }
...@@ -86,25 +87,25 @@ export function clearIntervalTask(taskId:number) { ...@@ -86,25 +87,25 @@ export function clearIntervalTask(taskId:number) {
*/ */
class AddUIRunnable implements Runnable { class AddUIRunnable implements Runnable {
override run():void { override run() : void {
let textView = new TextView(UTSAndroid.getUniActivity())
textView.setText("HELLO WORLD");
textView.textSize = 30.0.toFloat();
textView.setBackgroundColor(Color.RED)
textView.setTag("helloText")
textView.setGravity(Gravity.CENTER)
let decorView = UTSAndroid.getUniActivity()!.window.decorView; let textView = new TextView(UTSAndroid.getUniActivity())
textView.setText("HELLO WORLD");
textView.textSize = 30.0.toFloat();
textView.setBackgroundColor(Color.RED)
textView.setTag("helloText")
textView.setGravity(Gravity.CENTER)
let decorView = UTSAndroid.getUniActivity()!.window.decorView;
let frameContent = decorView.findViewById<FrameLayout>(android.R.id.content)
let layoutParam = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParam.topMargin = 200;
frameContent.addView(textView,layoutParam) let frameContent = decorView.findViewById<FrameLayout>(android.R.id.content)
let layoutParam = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParam.topMargin = 200;
} frameContent.addView(textView, layoutParam)
}
}; };
/** /**
...@@ -113,15 +114,15 @@ class AddUIRunnable implements Runnable { ...@@ -113,15 +114,15 @@ class AddUIRunnable implements Runnable {
*/ */
class RemoveUIRunnable extends Runnable { class RemoveUIRunnable extends Runnable {
override run():void { override run() : void {
let decorView = UTSAndroid.getUniActivity()!.getWindow().getDecorView();
let frameContent = decorView.findViewById<FrameLayout>(android.R.id.content)
let decorView = UTSAndroid.getUniActivity()!.getWindow().getDecorView();
let frameContent = decorView.findViewById<FrameLayout>(android.R.id.content)
let targetTV = frameContent.findViewWithTag<TextView>("helloText") let targetTV = frameContent.findViewWithTag<TextView>("helloText")
frameContent.removeView(targetTV) frameContent.removeView(targetTV)
} }
}; };
/** /**
...@@ -129,16 +130,16 @@ class RemoveUIRunnable extends Runnable { ...@@ -129,16 +130,16 @@ class RemoveUIRunnable extends Runnable {
* *
*/ */
export function addViewToDecorView() { export function addViewToDecorView() {
let uiRunable = new AddUIRunnable(); let uiRunable = new AddUIRunnable();
UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable) UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
} }
/** /**
* 实现从decorview上移除指定view * 实现从decorview上移除指定view
*/ */
export function removeViewToDecorView() { export function removeViewToDecorView() {
var uiRunable = new RemoveUIRunnable(); var uiRunable = new RemoveUIRunnable();
UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable) UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
} }
...@@ -146,26 +147,26 @@ export function removeViewToDecorView() { ...@@ -146,26 +147,26 @@ export function removeViewToDecorView() {
/** /**
* 引用资源路径 * 引用资源路径
*/ */
export function getMetaConfig(): string { export function getMetaConfig() : string {
// //
let packageName = UTSAndroid.getAppContext()!.getPackageName(); let packageName = UTSAndroid.getAppContext()!.getPackageName();
let appInfo = UTSAndroid.getAppContext()!.getPackageManager()!.getApplicationInfo(packageName,PackageManager.GET_META_DATA) let appInfo = UTSAndroid.getAppContext()!.getPackageManager()!.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
let metaData = appInfo.metaData let metaData = appInfo.metaData
if (metaData == null) { if (metaData == null) {
return ""; return "";
} }
let adId = metaData.getString("DCLOUD_READ_PHONE_STATE") let adId = metaData.getString("DCLOUD_READ_PHONE_STATE")
if (adId == null) { if (adId == null) {
// 没有数据,说明是自定义基座,则读取自定义基座的配置 // 没有数据,说明是自定义基座,则读取自定义基座的配置
let customMetaId = metaData.getString("UTS_CUSTOM_LAUNCHER_META") let customMetaId = metaData.getString("UTS_CUSTOM_LAUNCHER_META")
if(customMetaId == null){ if (customMetaId == null) {
return "" return ""
} }
return "自定义基座[UTS_CUSTOM_LAUNCHER_META]:" + customMetaId; return "自定义基座[UTS_CUSTOM_LAUNCHER_META]:" + customMetaId;
} }
// 标准基座 // 标准基座
return "标准基座[DCLOUD_READ_PHONE_STATE]:" + adId; return "标准基座[DCLOUD_READ_PHONE_STATE]:" + adId;
} }
...@@ -173,29 +174,29 @@ export function getMetaConfig(): string { ...@@ -173,29 +174,29 @@ export function getMetaConfig(): string {
/** /**
* 引用资源路径 * 引用资源路径
*/ */
export function getLogoPath(): string { export function getLogoPath() : string {
return logo; return logo;
} }
/** /**
* 音频播放器对象 * 音频播放器对象
*/ */
let globalPlayer:MediaPlayer| null = null; let globalPlayer : MediaPlayer | null = null;
/** /**
* 播放asset资源中的音频 * 播放asset资源中的音频
*/ */
export function playAssetAudio() { export function playAssetAudio() {
let assetManager = UTSAndroid.getAppContext()!.getAssets(); let assetManager = UTSAndroid.getAppContext()!.getAssets();
let afd = assetManager.openFd("free.mp3"); let afd = assetManager.openFd("free.mp3");
if(globalPlayer == null){ if (globalPlayer == null) {
globalPlayer = new MediaPlayer(); globalPlayer = new MediaPlayer();
globalPlayer!.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength()); globalPlayer!.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
globalPlayer!.prepare(); globalPlayer!.prepare();
globalPlayer!.start(); globalPlayer!.start();
} }
} }
...@@ -203,51 +204,51 @@ export function playAssetAudio() { ...@@ -203,51 +204,51 @@ export function playAssetAudio() {
* 停止播放asset资源中的音频 * 停止播放asset资源中的音频
*/ */
export function stopAssetAudio() { export function stopAssetAudio() {
if(globalPlayer != null){ if (globalPlayer != null) {
globalPlayer!.stop(); globalPlayer!.stop();
globalPlayer = null; globalPlayer = null;
} }
} }
export function goOtherActivity(imageDone: (event:string) => void):boolean { export function goOtherActivity(imageDone : (event : string) => void) : boolean {
// 检查相关权限是否已经具备 // 检查相关权限是否已经具备
if (ActivityCompat.checkSelfPermission(UTSAndroid.getUniActivity()!, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(UTSAndroid.getUniActivity()!, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
// 不具备权限,申请权限,并且告知用户监听失败 // 不具备权限,申请权限,并且告知用户监听失败
ActivityCompat.requestPermissions(UTSAndroid.getUniActivity()!, arrayOf(Manifest.permission.CAMERA), 1002) ActivityCompat.requestPermissions(UTSAndroid.getUniActivity()!, arrayOf(Manifest.permission.CAMERA), 1002)
return false; return false;
} }
UTSAndroid.onAppActivityResult((requestCode: Int, resultCode: Int, data?: Intent) => { UTSAndroid.onAppActivityResult((requestCode : Int, resultCode : Int, data ?: Intent) => {
let eventName = "onAppActivityResult - requestCode:" + requestCode + " -resultCode:"+resultCode + " -data:"+JSON.stringify(data); let eventName = "onAppActivityResult - requestCode:" + requestCode + " -resultCode:" + resultCode + " -data:" + JSON.stringify(data);
console.log(eventName); console.log(eventName);
if ((requestCode == 1001) && (resultCode == Activity.RESULT_OK)) { if ((requestCode == 1001) && (resultCode == Activity.RESULT_OK)) {
if (data != null) { if (data != null) {
let bundle = data.getExtras(); let bundle = data.getExtras();
let mImageBitmap = bundle!.get("data") as Bitmap; let mImageBitmap = bundle!.get("data") as Bitmap;
let bitmapPath = UTSAndroid.getUniActivity()!.getExternalCacheDir()!.getPath() + "/photo.png" let bitmapPath = UTSAndroid.getUniActivity()!.getExternalCacheDir()!.getPath() + "/photo.png"
console.log(bitmapPath); console.log(bitmapPath);
try{ try {
mImageBitmap.compress(Bitmap.CompressFormat.PNG,100,new FileOutputStream(bitmapPath)) mImageBitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(bitmapPath))
}catch(e){ } catch (e) {
} }
imageDone(bitmapPath); imageDone(bitmapPath);
} }
} }
}); });
let takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); let takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//resolveActivity 返回可处理 Intent 的第一个 Activity 组件 //resolveActivity 返回可处理 Intent 的第一个 Activity 组件
if (takePictureIntent.resolveActivity(UTSAndroid.getUniActivity()!.getPackageManager()) != null) { if (takePictureIntent.resolveActivity(UTSAndroid.getUniActivity()!.getPackageManager()) != null) {
UTSAndroid.getUniActivity()!.startActivityForResult(takePictureIntent, 1001); UTSAndroid.getUniActivity()!.startActivityForResult(takePictureIntent, 1001);
} }
return true; return true;
} }
...@@ -255,68 +256,68 @@ export function goOtherActivity(imageDone: (event:string) => void):boolean { ...@@ -255,68 +256,68 @@ export function goOtherActivity(imageDone: (event:string) => void):boolean {
* 初始化应用生命周期监听 * 初始化应用生命周期监听
* *
*/ */
export function initAppLifecycle(onLifecycleChange: (event:string) => void) { export function initAppLifecycle(onLifecycleChange : (event : string) => void) {
/** /**
* application 内存不足的回调函数 * application 内存不足的回调函数
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onapptrimmemory * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onapptrimmemory
*/ */
UTSAndroid.onAppTrimMemory((level:Number) => { UTSAndroid.onAppTrimMemory((level : Number) => {
let eventName = "onAppTrimMemory - " + level; let eventName = "onAppTrimMemory - " + level;
onLifecycleChange(eventName); onLifecycleChange(eventName);
console.log(eventName); console.log(eventName);
}); });
/** /**
* application 状态改变的回调函数 * application 状态改变的回调函数
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onAppConfigChange * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onAppConfigChange
*/ */
UTSAndroid.onAppConfigChange((ret:UTSJSONObject) => { UTSAndroid.onAppConfigChange((ret : UTSJSONObject) => {
let eventName = "onAppConfigChange - " + JSON.stringify(ret); let eventName = "onAppConfigChange - " + JSON.stringify(ret);
onLifecycleChange(eventName); onLifecycleChange(eventName);
console.log(eventName); console.log(eventName);
}); });
/** /**
* activity 销毁生命周期回调 * activity 销毁生命周期回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitydestroy * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitydestroy
*/ */
UTSAndroid.onAppActivityDestroy(() => { UTSAndroid.onAppActivityDestroy(() => {
let eventName = "onAppActivityDestroy"; let eventName = "onAppActivityDestroy";
onLifecycleChange(eventName); onLifecycleChange(eventName);
console.log(eventName); console.log(eventName);
}); });
/** /**
* activity 失去焦点生命周期回调 * activity 失去焦点生命周期回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitypause * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitypause
*/ */
UTSAndroid.onAppActivityPause(() => { UTSAndroid.onAppActivityPause(() => {
let eventName = "onAppActivityPause" ; let eventName = "onAppActivityPause";
onLifecycleChange(eventName); onLifecycleChange(eventName);
console.log(eventName); console.log(eventName);
}); });
/** /**
* activity 得到焦点的周期回调 * activity 得到焦点的周期回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityresume * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityresume
*/ */
UTSAndroid.onAppActivityResume(() => { UTSAndroid.onAppActivityResume(() => {
let eventName = "onAppActivityResume"; let eventName = "onAppActivityResume";
onLifecycleChange(eventName); onLifecycleChange(eventName);
console.log(eventName); console.log(eventName);
}); });
/** /**
* activity 回退物理按键事件回调 * activity 回退物理按键事件回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityback * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityback
*/ */
UTSAndroid.onAppActivityBack(() => { UTSAndroid.onAppActivityBack(() => {
let eventName = "onAppActivityBack"; let eventName = "onAppActivityBack";
onLifecycleChange(eventName); onLifecycleChange(eventName);
console.log(eventName); console.log(eventName);
}); });
} }
...@@ -331,29 +332,87 @@ export function unRegLifecycle() { ...@@ -331,29 +332,87 @@ export function unRegLifecycle() {
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onapptrimmemory * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onapptrimmemory
*/ */
UTSAndroid.offAppTrimMemory(); UTSAndroid.offAppTrimMemory();
/** /**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onAppConfigChange * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onAppConfigChange
*/ */
UTSAndroid.offAppConfigChange(); UTSAndroid.offAppConfigChange();
/** /**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitydestroy * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitydestroy
*/ */
UTSAndroid.offAppActivityDestroy(); UTSAndroid.offAppActivityDestroy();
/** /**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitypause * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitypause
*/ */
UTSAndroid.offAppActivityPause(); UTSAndroid.offAppActivityPause();
/** /**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityresume * 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityresume
*/ */
UTSAndroid.offAppActivityResume(); UTSAndroid.offAppActivityResume();
/** /**
* activity 回退物理按键事件回调 * activity 回退物理按键事件回调
*/ */
UTSAndroid.offAppActivityBack(); UTSAndroid.offAppActivityBack();
}
/**
* add since 2023-06-19
* 新增传参测试用例
*/
export function inputArray(input : Array<string>) : boolean {
let inputStr = JSON.stringify(input)
if ('["a","b","c"]' == inputStr) {
return true
}
return false
}
export type ParamOptions = {
title : string,
array : Array<string>
}
export function inputParam(option : ParamOptions) : boolean {
let inputStr = JSON.stringify(option)
if ('{"array":[1,2,3],"title":"hello"}' == inputStr) {
return true
}
return false
}
export function returnArray() : Array<string> {
return ['1', '2', '3']
}
export function returnParam() : ParamOptions {
let ret : ParamOptions = {
title: "returnParam",
array: ['1', '2', '3']
}
return ret
}
export type ParamCallback = (res : ParamOptions) => void
export type ArrayCallback = (res : Array<string>) => void
export function callbackArray(callback : ArrayCallback) {
callback(['8', '8', '8'])
}
export function callbackParam(callback : ParamCallback) {
let ret : ParamOptions = {
title: "callbackParam",
array: ['4', '5', '6']
}
callback(ret)
} }
\ No newline at end of file
...@@ -255,7 +255,7 @@ class DemoActivity extends Activity{ ...@@ -255,7 +255,7 @@ class DemoActivity extends Activity{
let recyclerView = this.findViewById<RecyclerView>(R.id.recycler_view) let recyclerView = this.findViewById<RecyclerView>(R.id.recycler_view)
let layoutManager = new LinearLayoutManager(this); let layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager); recyclerView.setLayoutManager(layoutManager);
let fruitAdapter = new FruitAdapter(arrayListOf("香蕉","苹果","大鸭梨")); let fruitAdapter = new FruitAdapter(utsArrayOf("香蕉","苹果","大鸭梨"));
recyclerView.setAdapter(fruitAdapter); recyclerView.setAdapter(fruitAdapter);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册