一、禁止截屏录屏
使用 MainWindow的 setWindowPrivacyMode(true)方法实现
1、在 EntryAbility的 onWindowStageCreate(windowStage: window.WindowStage) 方法中可以获取到 MainWindow
windowStage.getMainWindow((err, windowClass: window.Window) => {
this.mainWindow = windowClass;
});
2、然后通过 MainWindow设置进入隐私模式, 实现禁止截屏和录屏
this.mainWindow.setWindowPrivacyMode(true) //禁止截屏录屏
.
二、监听横屏竖屏
使用 mediaquery.matchMediaSync('(orientation: portrait)')方法实现
private portraitListener: mediaquery.MediaQueryListener = mediaquery.matchMediaSync('(orientation: portrait)');
this.portraitListener.on('change', (result)=> {
AppStorage.setOrCreate(ScreenUtil.isPortraitKey, result.matches)
})
.
三、设置App语言
使用 i18n.System.setAppPreferredLanguage(language) 实现
示例:
import { TitleBar } from '@devwiki/common_ui';
import { i18n } from '@kit.LocalizationKit';
@Entry
@Component
struct SetLanguagePage {
private readonly languageGroup = "languageGroup"
@State selectedLanguage: string = 'zh-Hans';
build() {
Column() {
TitleBar({
title: $r('app.string.set_language_title')
});
Row() {
Text('简体中文');
Radio({ group: this.languageGroup, value: 'zh-Hans' }).checked(this.selectedLanguage == 'zh-Hans')
.onChange(isChecked => {
if (isChecked) {
i18n.System.setAppPreferredLanguage('zh-Hans')
this.selectedLanguage = 'zh-Hans'
}
});
}
Row() {
Text('英文');
Radio({ group: this.languageGroup, value: 'en-US' }).checked(this.selectedLanguage == 'en-US')
.onChange(isChecked => {
if (isChecked) {
i18n.System.setAppPreferredLanguage('en-US')
this.selectedLanguage = 'en-US'
}
});
}
}.width('100%').height('100%')
}
}