1-增加子窗口启动窗口隐藏
2-增加启动设备和状态检测(不适合的设备,或者未开启的功能会自动关闭,暂时还没加提示)
This commit is contained in:
parent
1741abab5f
commit
22d82fccfc
@ -7,11 +7,11 @@
|
|||||||
"material": {
|
"material": {
|
||||||
"certpath": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.cer",
|
"certpath": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.cer",
|
||||||
"keyAlias": "debugKey",
|
"keyAlias": "debugKey",
|
||||||
"keyPassword": "0000001B2CD38FF95C9F1C08458296E67652F4DBA4D84D03D4468A904DEDA5C7AA6ADF19C56C0E83DAFDFE",
|
"keyPassword": "0000001B21AB330D4506E54197E39D516254A107D6F69BEC6158A58DACD97A0661F51DB303F7F7C5E83CAA",
|
||||||
"profile": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.p7b",
|
"profile": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.p7b",
|
||||||
"signAlg": "SHA256withECDSA",
|
"signAlg": "SHA256withECDSA",
|
||||||
"storeFile": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.p12",
|
"storeFile": "C:\\Users\\JackLee\\.ohos\\config\\default_OpenCAX_IBQbNZG6W5V0zTmQxRPojupy-F1gTlaQ6msiMPu4JRM=.p12",
|
||||||
"storePassword": "0000001B34A8AD5BD79AC1BDC8894626A599B5CC3A217A7F911B96A0FDBF8C7411D838809EA9B939B34EEE"
|
"storePassword": "0000001B8207D7EF59E69E28EAE5FB4C9C38A1B6F70BCB0C224D0F17811D2053BFED6A612893BB9C7C0E1B"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { window, display, AppStorageV2, ColorMetrics } from '@kit.ArkUI';
|
|||||||
import { IBestInit } from "@ibestservices/ibest-ui-v2"
|
import { IBestInit } from "@ibestservices/ibest-ui-v2"
|
||||||
import {ExtractDir,CheckExistDir,HilogSadboxFontDirFile} from "../pages/extractdir/ExtractDir"
|
import {ExtractDir,CheckExistDir,HilogSadboxFontDirFile} from "../pages/extractdir/ExtractDir"
|
||||||
import { DisplayWindowInfo, InitGlobalDisplayWindowInfo,mdwInfo}from '../pages/displaywindowinfo/DispWinInfo'
|
import { DisplayWindowInfo, InitGlobalDisplayWindowInfo,mdwInfo}from '../pages/displaywindowinfo/DispWinInfo'
|
||||||
|
import {RunEnvCheck} from '../pages/runenvcheck/RunEnvCheck'
|
||||||
const DOMAIN = 0x0000;
|
const DOMAIN = 0x0000;
|
||||||
|
|
||||||
export default class EntryAbility extends UIAbility {
|
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}`);
|
console.error(`Failed to obtain the main window. Code: ${err.code}, message: ${err.message}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(!RunEnvCheck(data)){
|
||||||
|
this.context.terminateSelf();
|
||||||
|
}
|
||||||
mdwInfo.win = data;
|
mdwInfo.win = data;
|
||||||
mdwInfo.winId =data.getWindowProperties().id;
|
mdwInfo.winId =data.getWindowProperties().id;
|
||||||
//moveWindowTo
|
//moveWindowTo
|
||||||
@ -99,6 +102,8 @@ export default class EntryAbility extends UIAbility {
|
|||||||
if (mdwInfo.win) {
|
if (mdwInfo.win) {
|
||||||
mdwInfo.win = undefined;
|
mdwInfo.win = undefined;
|
||||||
}
|
}
|
||||||
|
let ctx =this.context.getApplicationContext()
|
||||||
|
ctx.eventHub.emit('MainWindowDestroy');
|
||||||
// Main window is destroyed, release UI related resources
|
// Main window is destroyed, release UI related resources
|
||||||
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
|
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { CloseSubWindow, CreateAndShowSubWindow } from './EventSubPage';
|
|||||||
import { CreateXCompNode } from './XCompMgr';
|
import { CreateXCompNode } from './XCompMgr';
|
||||||
import { mdwInfo } from '../displaywindowinfo/DispWinInfo';
|
import { mdwInfo } from '../displaywindowinfo/DispWinInfo';
|
||||||
import { window } from '@kit.ArkUI';
|
import { window } from '@kit.ArkUI';
|
||||||
import { common,Want } from "@kit.AbilityKit";
|
import { common, StartOptions,Want } from "@kit.AbilityKit";
|
||||||
import NativeOpenCAX from 'libopencax.so';
|
import NativeOpenCAX from 'libopencax.so';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -150,7 +150,6 @@ export function EventWin(event:TitleButton){
|
|||||||
|
|
||||||
async function EventCreateWin(): Promise<boolean>{
|
async function EventCreateWin(): Promise<boolean>{
|
||||||
let want: Want = {
|
let want: Want = {
|
||||||
deviceId: '',
|
|
||||||
bundleName: 'com.example.opencax',
|
bundleName: 'com.example.opencax',
|
||||||
abilityName: 'SubWinAbility'
|
abilityName: 'SubWinAbility'
|
||||||
};
|
};
|
||||||
@ -177,12 +176,16 @@ async function EventCreateWin(): Promise<boolean>{
|
|||||||
appCtx?.eventHub.off('SubWinInitialized');
|
appCtx?.eventHub.off('SubWinInitialized');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
//启动参
|
||||||
|
let options: StartOptions = {
|
||||||
|
withAnimation:false,
|
||||||
|
hideStartWindow:true
|
||||||
|
|
||||||
|
};
|
||||||
// 发起启动 Ability 的请求
|
// 发起启动 Ability 的请求
|
||||||
console.info("Attempting to start SubWinAbility...");
|
console.info("Attempting to start SubWinAbility...");
|
||||||
await ctx.startAbility(want);
|
await ctx.startAbility(want,options);
|
||||||
console.info("StartAbility request sent.");
|
console.info("StartAbility request sent.");
|
||||||
|
|
||||||
// --- 等待初始化完成事件 ---
|
// --- 等待初始化完成事件 ---
|
||||||
console.info("Waiting for SubWinInitialized event...");
|
console.info("Waiting for SubWinInitialized event...");
|
||||||
const initResult = await initializationPromise;
|
const initResult = await initializationPromise;
|
||||||
|
|||||||
2
entry/src/main/ets/pages/runenvcheck/README.md
Normal file
2
entry/src/main/ets/pages/runenvcheck/README.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
软件运行环境检查<br>
|
||||||
|
对于不支持或者未开启只有窗口的设备进行提示!<br>
|
||||||
19
entry/src/main/ets/pages/runenvcheck/RunEnvCheck.ets
Normal file
19
entry/src/main/ets/pages/runenvcheck/RunEnvCheck.ets
Normal 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;
|
||||||
|
}
|
||||||
@ -14,6 +14,9 @@ export default class SubWinAbility extends UIAbility {
|
|||||||
let winInfo=data as SubWinInfo;
|
let winInfo=data as SubWinInfo;
|
||||||
this.InitWindowParam(winInfo);
|
this.InitWindowParam(winInfo);
|
||||||
});
|
});
|
||||||
|
ctx.eventHub.on('MainWindowDestroy', (data: Object) => {
|
||||||
|
this.context.terminateSelf();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
//执行窗口参数
|
//执行窗口参数
|
||||||
InitWindowParam(winInfo:SubWinInfo){
|
InitWindowParam(winInfo:SubWinInfo){
|
||||||
@ -58,7 +61,6 @@ export default class SubWinAbility extends UIAbility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async onWindowStageCreate(windowStage: window.WindowStage): Promise<void> {
|
async onWindowStageCreate(windowStage: window.WindowStage): Promise<void> {
|
||||||
windowStage.removeStartingWindow();
|
|
||||||
this.subWinStage=windowStage;
|
this.subWinStage=windowStage;
|
||||||
this.subWin = await windowStage.getMainWindow();
|
this.subWin = await windowStage.getMainWindow();
|
||||||
let ctx =this.context.getApplicationContext()
|
let ctx =this.context.getApplicationContext()
|
||||||
@ -68,6 +70,7 @@ export default class SubWinAbility extends UIAbility {
|
|||||||
onWindowStageDestroy(): void {
|
onWindowStageDestroy(): void {
|
||||||
let ctx =this.context.getApplicationContext()
|
let ctx =this.context.getApplicationContext()
|
||||||
ctx.eventHub.off('InitSubWindow');
|
ctx.eventHub.off('InitSubWindow');
|
||||||
|
ctx.eventHub.off('MainWindowDestroy');
|
||||||
// Main window is destroyed, release UI related resources
|
// Main window is destroyed, release UI related resources
|
||||||
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
|
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,17 +49,10 @@
|
|||||||
"description": "$string:EntryAbility_desc",
|
"description": "$string:EntryAbility_desc",
|
||||||
"icon": "$media:base_opencax_logo",
|
"icon": "$media:base_opencax_logo",
|
||||||
"label": "$string:EntryAbility_label",
|
"label": "$string:EntryAbility_label",
|
||||||
"startWindowIcon": "$media:base_start_background",
|
"startWindowIcon": "$media:base_sub_background",
|
||||||
"startWindowBackground": "$color:start_window_background",
|
"startWindowBackground": "$color:start_window_background",
|
||||||
"exported": true,
|
"exported": true,
|
||||||
"launchType":"standard",
|
"launchType":"multiton",
|
||||||
"metadata":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name":"enable.remove.starting.window",
|
|
||||||
"value":"true"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"skills": [
|
"skills": [
|
||||||
{
|
{
|
||||||
"entities": [
|
"entities": [
|
||||||
|
|||||||
BIN
entry/src/main/resources/base/media/base_sub_background.png
Normal file
BIN
entry/src/main/resources/base/media/base_sub_background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
Loading…
Reference in New Issue
Block a user