代码拉取完成,页面将自动刷新
import { BrowserPickerOptions, SettingPickerOptions } from "../interface";
import { common, UIAbility, Want, bundleManager } from '@kit.AbilityKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { window } from '@kit.ArkUI';
import { updateManager } from '@kit.StoreKit';
import notificationManager from '@ohos.notificationManager';
export function browserPicker(options: BrowserPickerOptions) {
let { uri } = options;
let wantInfo: Want = {
action: 'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
// 这个abilityName会导致出现授权的提示框
// abilityName: 'MainAbility',
uri: uri
};
(getContext() as common.UIAbilityContext).startAbility(wantInfo);
}
export function settingPicker(options: SettingPickerOptions) {
let { bundleName } = options;
let wantInfo: Want = {
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'application_info_entry',
parameters: {
settingsParamBundleName: bundleName
}
};
(getContext() as common.UIAbilityContext).startAbility(wantInfo);
}
export function clearCache(): void {
let context = getContext();
let cacheDir = context.cacheDir;
fs.listFile(cacheDir).then((filenames) => {
for (let i = 0;i < filenames.length; i++) {
let dirPath =cacheDir + '/' + filenames[i] // 判断是否文件夹
let isDirectory:boolean = false
try {
isDirectory = fs.statSync(dirPath).isDirectory()
} catch (e) {
console.log(e)
}
if (isDirectory) {
fs.rmdirSync(dirPath)
} else {
fs.unlink(dirPath).then(() => {
console.info('remove file succeed');
}).catch((err:BusinessError) => {
console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
});
}
}
})
}
export function disableScreen(flag: boolean): Promise<void> {
return new Promise(async (resolve, reject) => {
try {
const windowStage = await window.getLastWindow(getContext());
windowStage.setWindowPrivacyMode(flag);
resolve();
} catch (error) {
reject(error);
}
})
}
export function quit():void {
let context = getContext() as common.UIAbilityContext;
context.getApplicationContext().killAllProcesses();
}
export function checkAppUpdate(): Promise<boolean> {
return new Promise(async (resolve, reject) => {
try {
const context = getContext() as common.UIAbilityContext
const checkResult: updateManager.CheckUpdateResult = await updateManager.checkAppUpdate(context);
resolve(checkResult.updateAvailable === updateManager.UpdateAvailableCode.LATER_VERSION_EXIST);
} catch (error) {
reject(error);
}
})
}
export function showAppUpdateDialog(): void {
const context = getContext() as common.UIAbilityContext
updateManager.showUpdateDialog(context)
}
export function checkAppExist(link: string): boolean {
return bundleManager.canOpenLink(link);
}
export function appDetail(appId: string): Promise<void> {
return new Promise((resolve, reject) => {
try {
const context = getContext() as common.UIAbilityContext
const want: Want = {
uri: `store://appgallery.huawei.com/app/detail?id=C${appId}`
};
context.startAbility(want);
resolve();
} catch (error) {
reject(error);
}
})
}
import { Callback } from "@kit.BasicServicesKit";
import { router } from "@kit.ArkUI";
let count = 0;
export function customBusiness(url: string, callback: Callback<object>) {
const context = getContext();
const eventName = `custom_business_${count++}`;
context.eventHub.on(eventName, (result: object)=>{
callback(result);
context.eventHub.off(eventName);
router.back();
});
router.pushUrl({
url, params: {
eventName
}
} as router.RouterOptions);
}
const screenLockMapping: Map<string, number> = new Map([
["portrait-primary", window.Orientation.PORTRAIT],
["portrait-secondary", window.Orientation.PORTRAIT_INVERTED],
["landscape-primary", window.Orientation.LANDSCAPE],
["landscape-secondary", window.Orientation.LANDSCAPE_INVERTED],
["portrait", window.Orientation.AUTO_ROTATION_PORTRAIT],
["landscape", window.Orientation.AUTO_ROTATION_LANDSCAPE]
])
export function setWindowOrientation(orientation: string): void {
const _orientation = screenLockMapping.get(orientation);
if (!_orientation) {
return
}
const windowStage: window.WindowStage | null = UTSHarmony.getWindowStage();
windowStage?.getMainWindowSync().setPreferredOrientation(_orientation);
}
export function requestEnableNotification(): Promise<void> {
return notificationManager.requestEnableNotification();
}
export function setBadgeNumber(badgeNumber: number) {
notificationManager.setBadgeNumber(badgeNumber);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。