import { UIImageView , UIImage , UIScreen } from 'UIKit'; import { DispatchQueue } from 'Dispatch'; import { CGFloat } from 'CoreFoundation'; 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"}; } /* * 保存全局数据信息 */ 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: CGFloat = 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 } }) }