1-增加子窗口启动窗口隐藏

2-增加启动设备和状态检测(不适合的设备,或者未开启的功能会自动关闭,暂时还没加提示)
This commit is contained in:
JackLee 2026-04-21 16:19:30 +08:00
parent 1741abab5f
commit 22d82fccfc
8 changed files with 42 additions and 17 deletions

View File

@ -7,11 +7,11 @@
"material": {
"certpath": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.cer",
"keyAlias": "debugKey",
"keyPassword": "0000001B2CD38FF95C9F1C08458296E67652F4DBA4D84D03D4468A904DEDA5C7AA6ADF19C56C0E83DAFDFE",
"keyPassword": "0000001B21AB330D4506E54197E39D516254A107D6F69BEC6158A58DACD97A0661F51DB303F7F7C5E83CAA",
"profile": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.p12",
"storePassword": "0000001B34A8AD5BD79AC1BDC8894626A599B5CC3A217A7F911B96A0FDBF8C7411D838809EA9B939B34EEE"
"storePassword": "0000001B8207D7EF59E69E28EAE5FB4C9C38A1B6F70BCB0C224D0F17811D2053BFED6A612893BB9C7C0E1B"
}
}
],

View File

@ -4,7 +4,7 @@ import { window, display, AppStorageV2, ColorMetrics } from '@kit.ArkUI';
import { IBestInit } from "@ibestservices/ibest-ui-v2"
import {ExtractDir,CheckExistDir,HilogSadboxFontDirFile} from "../pages/extractdir/ExtractDir"
import { DisplayWindowInfo, InitGlobalDisplayWindowInfo,mdwInfo}from '../pages/displaywindowinfo/DispWinInfo'
import {RunEnvCheck} from '../pages/runenvcheck/RunEnvCheck'
const DOMAIN = 0x0000;
export default class EntryAbility extends UIAbility {
@ -63,6 +63,9 @@ export default class EntryAbility extends UIAbility {
console.error(`Failed to obtain the main window. Code: ${err.code}, message: ${err.message}`);
return;
}
if(!RunEnvCheck(data)){
this.context.terminateSelf();
}
mdwInfo.win = data;
mdwInfo.winId =data.getWindowProperties().id;
//moveWindowTo
@ -99,6 +102,8 @@ export default class EntryAbility extends UIAbility {
if (mdwInfo.win) {
mdwInfo.win = undefined;
}
let ctx =this.context.getApplicationContext()
ctx.eventHub.emit('MainWindowDestroy');
// Main window is destroyed, release UI related resources
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
}

View File

@ -2,7 +2,7 @@ import { CloseSubWindow, CreateAndShowSubWindow } from './EventSubPage';
import { CreateXCompNode } from './XCompMgr';
import { mdwInfo } from '../displaywindowinfo/DispWinInfo';
import { window } from '@kit.ArkUI';
import { common,Want } from "@kit.AbilityKit";
import { common, StartOptions,Want } from "@kit.AbilityKit";
import NativeOpenCAX from 'libopencax.so';
import {
@ -150,7 +150,6 @@ export function EventWin(event:TitleButton){
async function EventCreateWin(): Promise<boolean>{
let want: Want = {
deviceId: '',
bundleName: 'com.example.opencax',
abilityName: 'SubWinAbility'
};
@ -177,12 +176,16 @@ async function EventCreateWin(): Promise<boolean>{
appCtx?.eventHub.off('SubWinInitialized');
});
});
//启动参
let options: StartOptions = {
withAnimation:false,
hideStartWindow:true
};
// 发起启动 Ability 的请求
console.info("Attempting to start SubWinAbility...");
await ctx.startAbility(want);
await ctx.startAbility(want,options);
console.info("StartAbility request sent.");
// --- 等待初始化完成事件 ---
console.info("Waiting for SubWinInitialized event...");
const initResult = await initializationPromise;

View File

@ -0,0 +1,2 @@
软件运行环境检查<br>
对于不支持或者未开启只有窗口的设备进行提示!<br>

View File

@ -0,0 +1,19 @@
import { window} from '@kit.ArkUI';
import { display } from '@kit.ArkUI';
import { deviceInfo } from '@kit.BasicServicesKit';
export function RunEnvCheck(win:window.Window):boolean{
let resolve:boolean=true;
//获取屏幕状态,仅仅支持横屏模式.LANDSCAPE(横屏) or LANDSCAPE_INVERTED(反向横屏)
let orientation:number = display.getDefaultDisplaySync().orientation;
if(orientation!=1 && orientation!=3){
resolve=false;
//TIPS提示横屏
}
let freeWinState=win.isInFreeWindowMode();
if(!freeWinState){
resolve=false;
//TIPS提示开启自由窗口
}
return resolve;
}

View File

@ -14,6 +14,9 @@ export default class SubWinAbility extends UIAbility {
let winInfo=data as SubWinInfo;
this.InitWindowParam(winInfo);
});
ctx.eventHub.on('MainWindowDestroy', (data: Object) => {
this.context.terminateSelf();
});
}
//执行窗口参数
InitWindowParam(winInfo:SubWinInfo){
@ -58,7 +61,6 @@ export default class SubWinAbility extends UIAbility {
}
async onWindowStageCreate(windowStage: window.WindowStage): Promise<void> {
windowStage.removeStartingWindow();
this.subWinStage=windowStage;
this.subWin = await windowStage.getMainWindow();
let ctx =this.context.getApplicationContext()
@ -68,6 +70,7 @@ export default class SubWinAbility extends UIAbility {
onWindowStageDestroy(): void {
let ctx =this.context.getApplicationContext()
ctx.eventHub.off('InitSubWindow');
ctx.eventHub.off('MainWindowDestroy');
// Main window is destroyed, release UI related resources
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
}

View File

@ -49,17 +49,10 @@
"description": "$string:EntryAbility_desc",
"icon": "$media:base_opencax_logo",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:base_start_background",
"startWindowIcon": "$media:base_sub_background",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"launchType":"standard",
"metadata":
[
{
"name":"enable.remove.starting.window",
"value":"true"
}
],
"launchType":"multiton",
"skills": [
{
"entities": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB