- 发布:2024-12-08 16:00
- 更新:2024-12-08 16:00
- 阅读:59
产品分类: uni小程序SDK
手机系统: 全部
手机厂商: 华为
页面类型: vue
SDK版本号: 2.3.15
测试过的手机:
示例代码:
这个是EntryAbility中的方法
···
// 可以设置导航栏样式
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage_ = windowStage
init(this, windowStage)
windowStage.loadContent('pages/login/advertisement', (err) => {
//由于时序问题,需要使用setTimeout保证页面压栈的顺序
setTimeout(() => {
//跳转支付页面
this.action()
})
AppStorage.setOrCreate('windowId', 0)
// 我的设置 蛇形图还是树形图
PersistentStorage.persistProp('across', false)
PersistentStorage.persistProp('size_option', 0)
AppStorage.setOrCreate('Fontsize', [12, 14, 16, 18])
AppStorage.setOrCreate('CityId', 2500)
// 搜索的数据
PersistentStorage.persistProp('history_records', [])
// 首页推荐优先还是收藏优先 默认推荐
PersistentStorage.persistProp('selectedIndex', 0)
// 打开获取位置的弹窗
reqPermissionsFromUser(this.context, ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'])
let show_gg = (web: status) => {
let obj: webDetail = {
webUrl: web.msg.split('|')[1]
}
// 子窗口的逻辑
this.showSubWindow(obj)
}
this.context.eventHub.on('show_web', show_gg)
windowStage.getMainWindowSync().setWindowLayoutFullScreen(true) // 同意设置全屏
PersistentStorage.persistProp('tip',true)
// 添加换乘页面的线路
PersistentStorage.persistProp('search_line', [{
imag: $r('app.media.search_home'), text: {
showText: '回家'
}, address: null
}, {
imag: $r('app.media.search_work'), text: {
showText: '上班'
}, address: null
}])
});
// 设置成全屏
windowStage.getMainWindow((err, windowClass) => {
windowClass.setWindowLayoutFullScreen(true)
// 隐藏状态栏显示
// windowClass.setWindowSystemBarEnable(['navigation'])
// 获取顶部状态栏遮挡区域
let typeSystem = window.AvoidAreaType.TYPE_SYSTEM;
let avoidAreaWindow = windowClass.getWindowAvoidArea(typeSystem);
let statusTop = px2vp(avoidAreaWindow.topRect.height); // 获取状态栏的高度
// 2. 获取导航条避让遮挡的区域
let type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR;
let avoidArea = windowClass.getWindowAvoidArea(type);
let bottomRectHeight = px2vp(avoidArea.bottomRect.height); // 获取到导航条区域的高度
AppStorage.setOrCreate('statusTop', statusTop); // 存储状态栏高度
AppStorage.setOrCreate('statusBottom', bottomRectHeight); // 存储状导航条区域的高度
AppStorage.setOrCreate('BW', 1); // 存储全局UI设置是否黑白
})
}
···
这个是EntryAbility中的方法
···
// 可以设置导航栏样式
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage_ = windowStage
init(this, windowStage)
windowStage.loadContent('pages/login/advertisement', (err) => {
//由于时序问题,需要使用setTimeout保证页面压栈的顺序
setTimeout(() => {
//跳转支付页面
this.action()
})
AppStorage.setOrCreate('windowId', 0)
// 我的设置 蛇形图还是树形图
PersistentStorage.persistProp('across', false)
PersistentStorage.persistProp('size_option', 0)
AppStorage.setOrCreate('Fontsize', [12, 14, 16, 18])
AppStorage.setOrCreate('CityId', 2500)
// 搜索的数据
PersistentStorage.persistProp('history_records', [])
// 首页推荐优先还是收藏优先 默认推荐
PersistentStorage.persistProp('selectedIndex', 0)
// 打开获取位置的弹窗
reqPermissionsFromUser(this.context, ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'])
let show_gg = (web: status) => {
let obj: webDetail = {
webUrl: web.msg.split('|')[1]
}
// 子窗口的逻辑
this.showSubWindow(obj)
}
this.context.eventHub.on('show_web', show_gg)
windowStage.getMainWindowSync().setWindowLayoutFullScreen(true) // 同意设置全屏
PersistentStorage.persistProp('tip',true)
// 添加换乘页面的线路
PersistentStorage.persistProp('search_line', [{
imag: $r('app.media.search_home'), text: {
showText: '回家'
}, address: null
}, {
imag: $r('app.media.search_work'), text: {
showText: '上班'
}, address: null
}])
});
// 设置成全屏
windowStage.getMainWindow((err, windowClass) => {
windowClass.setWindowLayoutFullScreen(true)
// 隐藏状态栏显示
// windowClass.setWindowSystemBarEnable(['navigation'])
// 获取顶部状态栏遮挡区域
let typeSystem = window.AvoidAreaType.TYPE_SYSTEM;
let avoidAreaWindow = windowClass.getWindowAvoidArea(typeSystem);
let statusTop = px2vp(avoidAreaWindow.topRect.height); // 获取状态栏的高度
// 2. 获取导航条避让遮挡的区域
let type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR;
let avoidArea = windowClass.getWindowAvoidArea(type);
let bottomRectHeight = px2vp(avoidArea.bottomRect.height); // 获取到导航条区域的高度
AppStorage.setOrCreate('statusTop', statusTop); // 存储状态栏高度
AppStorage.setOrCreate('statusBottom', bottomRectHeight); // 存储状导航条区域的高度
AppStorage.setOrCreate('BW', 1); // 存储全局UI设置是否黑白
})
}
···
操作步骤:
点击胶囊关闭小程序后再次打开会闪退(是整个app都没了不光小程序没了)
点击胶囊关闭小程序后再次打开会闪退(是整个app都没了不光小程序没了)
预期结果:
正常打开
正常打开
实际结果:
闪退(是整个app都没了不光小程序没了)
闪退(是整个app都没了不光小程序没了)
bug描述:
Device info:HUAWEI Mate 60 Pro
Build info:ALN-AL00 5.0.0.112(SP1C00E110R4P22log)
Fingerprint:e5c641e513373774d54da66dbe76f7ab98f61d7e5c7932d19591c881ecdd8d3a
Module name:com.example.application369
Version:1.0.0
VersionCode:1000000
PreInstalled:No
Foreground:Yes
Pid:37722
Uid:20020004
Reason:Error
Error name:Error
Error message:This window state is abnormal.
Error code:
Stacktrace:
at getSafeAreaInsets (oh_modules/.ohpm/@dcloudio+uni-app-runtime@2.3.15/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:1125:1)
at aboutToAppear (oh_modules/.ohpm/@dcloudio+uni-app-runtime@2.3.15/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/components/Capsule.ets:127:44)
0 个回复