HarmonyOS 安全控件无法在弹窗中使用
代码如下:
安全控件放在页面里能拿到权限,放在弹窗里就不行:
长按顶部图片,调起弹窗,点击保存图片(安全控件),申请权限失败
单击底部保存图片(安全控件)按钮,申请权限成功。
import { promptAction } from '@kit.ArkUI';
import { common } from '@kit.AbilityKit';
@Entry
@Component
struct TestPage {
controller: TextController = new TextController();
options: TextOptions = { controller: this.controller };
build() {
Row() {
Column({ space: 10 }) {
Image($r('app.media.app_icon'))
.height(200)
.width('100%')
.objectFit(ImageFit.Contain)
.draggable(false)
.gesture(
LongPressGesture({ repeat: false })
.onAction(() => {
this.showDialog()
})
)
SaveButton({
text: SaveDescription.SAVE_IMAGE,
buttonType: ButtonType.Normal
}).onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => {
if (result === SaveButtonOnClickResult.SUCCESS) {
promptAction.showToast({ message: '设置权限成功!' })
} else {
promptAction.showToast({ message: '设置权限失败!' })
}
})
}
.width('100%')
}
.height('100%')
.backgroundColor(0xF1F3F5)
}
showDialog() {
const controller = new CustomDialogController({
builder: SaveImageDialog({
onSave: () => {
controller.close()
},
onClose: () => {
controller.close()
}
}),
alignment: DialogAlignment.Bottom,
customStyle: true,
})
controller.open()
}
}
@CustomDialog
export struct SaveImageDialog {
private controller?: CustomDialogController;
onSave?: () => void;
onClose?: () => void;
build() {
Column() {
SaveButton({
text: SaveDescription.SAVE_IMAGE,
buttonType: ButtonType.Normal
}).fontColor(Color.Black).fontSize(16)
.backgroundColor(Color.Transparent)
.width('100%')
.padding(15)
.onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => {
if (result === SaveButtonOnClickResult.SUCCESS) {
const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
this.onSave?.()
} else {
promptAction.showToast({ message: '设置权限失败!' })
}
})
Line()
.width('100%').height(0.5)
.backgroundColor(Color.Black)
Text('取消')
.fontColor(Color.Black).fontSize(16)
.textAlign(TextAlign.Center)
.width('100%')
.padding(15)
.onClick(() => {
this.onClose?.()
})
}.backgroundColor(Color.White)
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS LocalStorage怎么在Navigation中使用
88浏览 • 0回复 待解决
如何使用安全控件SaveButton进行图片的快速保存
1951浏览 • 1回复 待解决
HarmonyOS如何将自定义弹窗显示在某个控件的位置附近
158浏览 • 1回复 待解决
在image组件中使用bindContextMenu报错
97浏览 • 1回复 待解决
在自定义组件中使用@ObjectLink报错
266浏览 • 1回复 待解决
getContext(this)能否在自定义类中使用
1861浏览 • 1回复 待解决
为什么在 openGauss 中使用“explain timing”时显示错误?
2190浏览 • 1回复 待解决
开源的中间件能否在PolarDB中使用?
2332浏览 • 1回复 待解决
在@watch中使用异步方法后UI反应慢
122浏览 • 1回复 待解决
应用开发时如何全局保存变量,在ets文件中使用
1877浏览 • 1回复 待解决
HAR包中使用window作为Toast时无法引入页面组件
1361浏览 • 1回复 待解决
基础SDK导出的文件为Index.ets,导致SDK无法在调用方的ts文件中使用
630浏览 • 1回复 待解决
为什么在MongoDB中使用Object ID数据类型?
3974浏览 • 1回复 待解决
HarmonyOS Web控件中的onPageEnd无法拦截#hash跳转
109浏览 • 1回复 待解决
在 MySKubernetes 集群中使用节点本地存储资源的方式有什么?
2766浏览 • 1回复 待解决
在ArkTS的主线程中使用await会堵塞主线程吗
1751浏览 • 1回复 待解决
ets文件里dialog弹窗是否能以组件形式引入到其他ets文件中使用?
4289浏览 • 1回复 待解决
Ability生命周期中的参数WindowStage Want能否在Worker中使用
344浏览 • 1回复 待解决
HAR包中使用window作为Toast时无法引入页面组件,如何去解决?
101浏览 • 1回复 待解决
弹窗组件无法进入onPageShow方法
1809浏览 • 1回复 待解决
@kit.MapKit 地图控件无法显示
1703浏览 • 1回复 待解决
在 RelativeContainer 中使用 Panel,未被 Panel 覆盖的区域,仍然可以交互。
484浏览 • 1回复 待解决
自定义弹窗能否在ts文件中定义和使用
1503浏览 • 1回复 待解决
使用通用属性 clip 怎么在一个控件上用圆环切割?
1636浏览 • 1回复 待解决
安全控件不能放到屏幕边缘,如果超出屏幕范围一点也会失败。建议使用该组件的时候,先获取屏幕宽度,再设置具体的数值。