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 在@CustomDialog中使用TextArea关闭弹窗后,键盘没有隐藏
12浏览 • 1回复 待解决
HarmonyOS .bindSheet()绑定控件弹窗使用问题
11浏览 • 1回复 待解决
HarmonyOS 无法在taskpool中使用AppStorage获取全局变量
42浏览 • 1回复 待解决
如何使用安全控件SaveButton进行图片的快速保存
2420浏览 • 1回复 待解决
HarmonyOS LocalStorage怎么在Navigation中使用
470浏览 • 0回复 待解决
HarmonyOS 使用位置控件无法满足请求定位场景
5浏览 • 1回复 待解决
HarmonyOS 自定义弹窗如何在工具类中使用
94浏览 • 1回复 待解决
HarmonyOS 在依赖library中使用worker报错
353浏览 • 1回复 待解决
HarmonyOS 使用定位api无法弹出授权弹窗
24浏览 • 1回复 待解决
在image组件中使用bindContextMenu报错
470浏览 • 1回复 待解决
HarmonyOS如何将自定义弹窗显示在某个控件的位置附近
548浏览 • 1回复 待解决
HarmonyOS .bindSheet() 绑定控件弹窗滑动问题
24浏览 • 1回复 待解决
HarmonyOS 在builder中使用自定义组件报错
393浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何选择在HarmonyOS中使用NDK
74浏览 • 1回复 待解决
HarmonyOS 在替换GMS的应用中使用HMS Core
213浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在自定义弹窗中使用openAnimation定义弹窗的出现动画效果?
112浏览 • 0回复 待解决
getContext(this)能否在自定义类中使用
2308浏览 • 1回复 待解决
在自定义组件中使用@ObjectLink报错
1348浏览 • 1回复 待解决
HarmonyOS share弹窗无法弹出
34浏览 • 1回复 待解决
HarmonyOS CanvasRenderingContext2D 支持在 TaskPool中使用吗?
152浏览 • 1回复 待解决
在@watch中使用异步方法后UI反应慢
444浏览 • 1回复 待解决
开源的中间件能否在PolarDB中使用?
2673浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中使用全局状态保留弹窗实现评论组件?
119浏览 • 1回复 待解决
安全控件不能放到屏幕边缘,如果超出屏幕范围一点也会失败。建议使用该组件的时候,先获取屏幕宽度,再设置具体的数值。