diff --git a/pages.json b/pages.json
index 18e3486ed066fa84752e07b6dd4be2ea0e6faa6e..17bf47bc5aff2a4e3734c177a7d924b033f39c79 100644
--- a/pages.json
+++ b/pages.json
@@ -142,8 +142,19 @@
"enablePullDownRefresh": false
}
+ },
+
+ {
+ "path" : "pages/SyntaxCase/paramTest",
+ "style" :
+ {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+
}
+
],
"tabBar": {
"color": "#7A7E83",
diff --git a/pages/SyntaxCase/paramTest.vue b/pages/SyntaxCase/paramTest.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f874e78433f9cf991396e211f7d0fb53c476587e
--- /dev/null
+++ b/pages/SyntaxCase/paramTest.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/advance/advance.vue b/pages/advance/advance.vue
index cf72516efa5794fef406e0513f411567bc9daba1..24d5594b800e55946b1210fbd0ac775d72dc76be 100644
--- a/pages/advance/advance.vue
+++ b/pages/advance/advance.vue
@@ -24,6 +24,8 @@
+
+
@@ -180,6 +182,11 @@
url: '/pages/SyntaxCase/index'
})
},
+ testParams: function() {
+ uni.navigateTo({
+ url: '/pages/SyntaxCase/paramTest'
+ })
+ },
testGetResourcePath: function() {
uni.navigateTo({
url: '/pages/advance/iOS/getResourcePath'
diff --git a/uni_modules/uts-advance/utssdk/app-android/index.uts b/uni_modules/uts-advance/utssdk/app-android/index.uts
index 5aa92dba06a73984347f43faa9d0cbf2274e2721..67e3c7363c1d61abafbd2cde3d3c63bf048013d9 100644
--- a/uni_modules/uts-advance/utssdk/app-android/index.uts
+++ b/uni_modules/uts-advance/utssdk/app-android/index.uts
@@ -25,6 +25,7 @@ import EditText from 'android.widget.EditText';
import {
UTSAndroid
} from "io.dcloud.uts";
+import array from 'android.R.array';
@@ -36,47 +37,47 @@ type TimerOptions = {
* 定时任务开始的回调
* @res 回调参数
*/
- start: (res: string) => void;
+ start : (res : string) => void;
/**
* 定时任务执行的回调
* @res 回调参数
*/
- work: (res: string) => void;
+ work : (res : string) => void;
};
/**
* 执行延时任务
*/
-export function doTimerTask(opts:TimerOptions) {
+export function doTimerTask(opts : TimerOptions) {
opts.start('doTimerTask start');
- setTimeout(function() {
+ setTimeout(function () {
opts.work("doTimerTask work");
}, 2000);
-
- return { name: "doTimerTask" };
+
+ return { name: "doTimerTask" };
}
/**
* 执行周期任务
*/
-export function doIntervalTask(opts:TimerOptions) {
-
- let taskRet = setInterval(function() {
+export function doIntervalTask(opts : TimerOptions) {
+
+ let taskRet = setInterval(function () {
opts.work("doIntervalTask work");
}, 2000);
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);
- return { name: "clearIntervalTask"};
+ return { name: "clearIntervalTask" };
}
@@ -86,25 +87,25 @@ export function clearIntervalTask(taskId:number) {
*/
class AddUIRunnable implements Runnable {
- 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)
+ override run() : void {
- 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(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(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 {
*/
class RemoveUIRunnable extends Runnable {
- override run():void {
+ override run() : void {
+
+ let decorView = UTSAndroid.getUniActivity()!.getWindow().getDecorView();
+ let frameContent = decorView.findViewById(android.R.id.content)
- let decorView = UTSAndroid.getUniActivity()!.getWindow().getDecorView();
- let frameContent = decorView.findViewById(android.R.id.content)
-
let targetTV = frameContent.findViewWithTag("helloText")
frameContent.removeView(targetTV)
- }
+ }
};
/**
@@ -129,16 +130,16 @@ class RemoveUIRunnable extends Runnable {
*
*/
export function addViewToDecorView() {
- let uiRunable = new AddUIRunnable();
- UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
+ let uiRunable = new AddUIRunnable();
+ UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
}
/**
* 实现从decorview上移除指定view
*/
export function removeViewToDecorView() {
- var uiRunable = new RemoveUIRunnable();
- UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
+ var uiRunable = new RemoveUIRunnable();
+ UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
}
@@ -146,26 +147,26 @@ export function removeViewToDecorView() {
/**
* 引用资源路径
*/
-export function getMetaConfig(): string {
+export function getMetaConfig() : string {
//
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
if (metaData == null) {
- return "";
+ return "";
}
let adId = metaData.getString("DCLOUD_READ_PHONE_STATE")
if (adId == null) {
// 没有数据,说明是自定义基座,则读取自定义基座的配置
let customMetaId = metaData.getString("UTS_CUSTOM_LAUNCHER_META")
- if(customMetaId == null){
+ if (customMetaId == null) {
return ""
}
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 {
/**
* 引用资源路径
*/
-export function getLogoPath(): string {
- return logo;
+export function getLogoPath() : string {
+ return logo;
}
/**
* 音频播放器对象
*/
-let globalPlayer:MediaPlayer| null = null;
+let globalPlayer : MediaPlayer | null = null;
/**
* 播放asset资源中的音频
*/
export function playAssetAudio() {
-
+
let assetManager = UTSAndroid.getAppContext()!.getAssets();
let afd = assetManager.openFd("free.mp3");
-
- if(globalPlayer == null){
+
+ if (globalPlayer == null) {
globalPlayer = new MediaPlayer();
- globalPlayer!.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
+ globalPlayer!.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
globalPlayer!.prepare();
globalPlayer!.start();
}
-
+
}
@@ -203,51 +204,51 @@ export function playAssetAudio() {
* 停止播放asset资源中的音频
*/
export function stopAssetAudio() {
-
- if(globalPlayer != null){
+
+ if (globalPlayer != null) {
globalPlayer!.stop();
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) {
// 不具备权限,申请权限,并且告知用户监听失败
ActivityCompat.requestPermissions(UTSAndroid.getUniActivity()!, arrayOf(Manifest.permission.CAMERA), 1002)
-
+
return false;
}
-
- UTSAndroid.onAppActivityResult((requestCode: Int, resultCode: Int, data?: Intent) => {
- let eventName = "onAppActivityResult - requestCode:" + requestCode + " -resultCode:"+resultCode + " -data:"+JSON.stringify(data);
- console.log(eventName);
+
+ UTSAndroid.onAppActivityResult((requestCode : Int, resultCode : Int, data ?: Intent) => {
+ let eventName = "onAppActivityResult - requestCode:" + requestCode + " -resultCode:" + resultCode + " -data:" + JSON.stringify(data);
+ console.log(eventName);
if ((requestCode == 1001) && (resultCode == Activity.RESULT_OK)) {
- if (data != null) {
- let bundle = data.getExtras();
- let mImageBitmap = bundle!.get("data") as Bitmap;
- let bitmapPath = UTSAndroid.getUniActivity()!.getExternalCacheDir()!.getPath() + "/photo.png"
- console.log(bitmapPath);
- try{
- mImageBitmap.compress(Bitmap.CompressFormat.PNG,100,new FileOutputStream(bitmapPath))
- }catch(e){
- }
- imageDone(bitmapPath);
-
- }
- }
+ if (data != null) {
+ let bundle = data.getExtras();
+ let mImageBitmap = bundle!.get("data") as Bitmap;
+ let bitmapPath = UTSAndroid.getUniActivity()!.getExternalCacheDir()!.getPath() + "/photo.png"
+ console.log(bitmapPath);
+ try {
+ mImageBitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(bitmapPath))
+ } catch (e) {
+ }
+ imageDone(bitmapPath);
+
+ }
+ }
});
-
+
let takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//resolveActivity 返回可处理 Intent 的第一个 Activity 组件
if (takePictureIntent.resolveActivity(UTSAndroid.getUniActivity()!.getPackageManager()) != null) {
UTSAndroid.getUniActivity()!.startActivityForResult(takePictureIntent, 1001);
}
-
+
return true;
-
+
}
@@ -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 内存不足的回调函数
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onapptrimmemory
*/
- UTSAndroid.onAppTrimMemory((level:Number) => {
+ UTSAndroid.onAppTrimMemory((level : Number) => {
let eventName = "onAppTrimMemory - " + level;
onLifecycleChange(eventName);
- console.log(eventName);
+ console.log(eventName);
});
-
+
/**
* application 状态改变的回调函数
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onAppConfigChange
*/
- UTSAndroid.onAppConfigChange((ret:UTSJSONObject) => {
+ UTSAndroid.onAppConfigChange((ret : UTSJSONObject) => {
let eventName = "onAppConfigChange - " + JSON.stringify(ret);
onLifecycleChange(eventName);
- console.log(eventName);
+ console.log(eventName);
});
-
-
+
+
/**
* activity 销毁生命周期回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitydestroy
*/
- UTSAndroid.onAppActivityDestroy(() => {
+ UTSAndroid.onAppActivityDestroy(() => {
let eventName = "onAppActivityDestroy";
onLifecycleChange(eventName);
- console.log(eventName);
- });
-
-
+ console.log(eventName);
+ });
+
+
/**
* activity 失去焦点生命周期回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitypause
*/
- UTSAndroid.onAppActivityPause(() => {
- let eventName = "onAppActivityPause" ;
+ UTSAndroid.onAppActivityPause(() => {
+ let eventName = "onAppActivityPause";
onLifecycleChange(eventName);
- console.log(eventName);
- });
+ console.log(eventName);
+ });
/**
* activity 得到焦点的周期回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityresume
*/
- UTSAndroid.onAppActivityResume(() => {
+ UTSAndroid.onAppActivityResume(() => {
let eventName = "onAppActivityResume";
onLifecycleChange(eventName);
- console.log(eventName);
- });
+ console.log(eventName);
+ });
/**
* activity 回退物理按键事件回调
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityback
*/
- UTSAndroid.onAppActivityBack(() => {
+ UTSAndroid.onAppActivityBack(() => {
let eventName = "onAppActivityBack";
onLifecycleChange(eventName);
- console.log(eventName);
- });
+ console.log(eventName);
+ });
}
@@ -331,29 +332,87 @@ export function unRegLifecycle() {
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onapptrimmemory
*/
UTSAndroid.offAppTrimMemory();
-
+
/**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onAppConfigChange
*/
UTSAndroid.offAppConfigChange();
-
+
/**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitydestroy
*/
- UTSAndroid.offAppActivityDestroy();
-
+ UTSAndroid.offAppActivityDestroy();
+
/**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivitypause
*/
- UTSAndroid.offAppActivityPause();
-
+ UTSAndroid.offAppActivityPause();
+
/**
* 说明文档:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#onappactivityresume
*/
- UTSAndroid.offAppActivityResume();
+ UTSAndroid.offAppActivityResume();
/**
* activity 回退物理按键事件回调
*/
- UTSAndroid.offAppActivityBack();
+ UTSAndroid.offAppActivityBack();
+
+}
+
+/**
+ * add since 2023-06-19
+ * 新增传参测试用例
+ */
+export function inputArray(input : Array) : boolean {
+
+ let inputStr = JSON.stringify(input)
+
+ if ('["a","b","c"]' == inputStr) {
+ return true
+ }
+ return false
+
+}
+
+export type ParamOptions = {
+ title : string,
+ array : Array
+}
+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 {
+ 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) => 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
diff --git a/uni_modules/uts-nativepage/utssdk/app-android/index.uts b/uni_modules/uts-nativepage/utssdk/app-android/index.uts
index dfc3ed2c8b29f23919470bd74947192dcac18b2a..994bd146648a3029b3c2b0bcb36b8d7f3e4e9cc0 100644
--- a/uni_modules/uts-nativepage/utssdk/app-android/index.uts
+++ b/uni_modules/uts-nativepage/utssdk/app-android/index.uts
@@ -255,7 +255,7 @@ class DemoActivity extends Activity{
let recyclerView = this.findViewById(R.id.recycler_view)
let layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
- let fruitAdapter = new FruitAdapter(arrayListOf("香蕉","苹果","大鸭梨"));
+ let fruitAdapter = new FruitAdapter(utsArrayOf("香蕉","苹果","大鸭梨"));
recyclerView.setAdapter(fruitAdapter);
}