index.uts 3.6 KB
Newer Older
1 2
import { UIImageView , UIImage , UIScreen } from 'UIKit';
import { DispatchQueue } from 'Dispatch';
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
export function addViewToDecorView() { }
export function removeViewToDecorView() { }
export function initAppLifecycle() { }
export function getLogoPath() {}
export function playAssetAudio(){}

/**
 * 定时任务参数封装
 */
type TimerOptions = {
	/**
	 * 定时任务开始的回调
	 * @res 回调参数
	 */
	start: (res: string) => void;
	/**
	* 定时任务执行的回调
	* @res 回调参数
	*/
	work: (res: string) => void;
};


/**
 * 执行延时任务
 */
export function doTimerTask(opts:TimerOptions) {
	opts.start('doTimerTask start');
	setTimeout(function() {
		opts.work("doTimerTask work");
	}, 2000);
  
  return { name: "doTimerTask" };
}

/**
 * 执行周期任务
 */
export function doIntervalTask(opts:TimerOptions) {
	
	let taskRet = setInterval(function() {
		opts.work("doIntervalTask work");
	}, 2000);
	opts.start('doIntervalTask start');
  
  return { name: "doIntervalTask",taskId:taskRet};
}

/**
 * 清除周期任务
 */
export function clearIntervalTask(taskId:number) {
	
	clearInterval(taskId);
	return { name: "clearIntervalTask"};
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
}

/* 
 * 保存全局数据信息
 */
class AdvanceModuleGloabInfo {
	static imageView?: UIImageView = null
}


/**
 * 将h5资源路径转成app本地资源路径 
 */
export function getResourcePath(path: string) {
	const imagePath = UTSiOS.getResourcePath(path)
	console.log(imagePath)
	
	if (AdvanceModuleGloabInfo.imageView == null) { 
		let vc = UTSiOS.getCurrentViewController()
		// uts方法默认会在子线程中执行,涉及 UI 操作必须在主线程中运行,通过 DispatchQueue.main.async 方法可将代码在主线程中运行
		DispatchQueue.main.async(execute=():void => {
			// 创建imageView
			let imageView = new UIImageView()
			let image = new UIImage(contentsOfFile = imagePath)
			imageView.image = image
			
			// 添加imageView并设置frame
			vc.view.addSubview(imageView)
			let imageSize = 80.0
			let midx = (UIScreen.main.bounds.size.width - imageSize) / 2
			let midy = (UIScreen.main.bounds.size.height - imageSize) / 2
			imageView.frame = CGRect(x = midx, y = midy, width = imageSize, height = imageSize)
			AdvanceModuleGloabInfo.imageView = imageView
		})
	}

}


export function removeExampleImageView() {
	DispatchQueue.main.async(execute=():void => {
		if (AdvanceModuleGloabInfo.imageView != null) {
			AdvanceModuleGloabInfo.imageView!.removeFromSuperview()
			AdvanceModuleGloabInfo.imageView = null
		}
	})
lizhongyi_'s avatar
lizhongyi_ 已提交
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
}

/**
 * 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 {
	console.log(option, "传入的参数")
	let inputStr = JSON.stringify(option)
	console.log(inputStr, '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)   
}