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 安全控件使用
244浏览 • 1回复 待解决
HarmonyOS 安全控件使用问题
619浏览 • 1回复 待解决
HarmonyOS .bindSheet()绑定控件弹窗使用问题
473浏览 • 1回复 待解决
HarmonyOS 在@CustomDialog中使用TextArea关闭弹窗后,键盘没有隐藏
238浏览 • 1回复 待解决
HarmonyOS 使用安全控件保存图片到本地失败
308浏览 • 1回复 待解决
HarmonyOS 在@builder中使用引用传递无法触发UI刷新
253浏览 • 1回复 待解决
HarmonyOS 无法在taskpool中使用AppStorage获取全局变量
473浏览 • 1回复 待解决
HarmonyOS 使用安全控件保存图片,授权一直失败
263浏览 • 1回复 待解决
如何使用安全控件SaveButton进行图片的快速保存
2849浏览 • 1回复 待解决
HarmonyOS 使用安全控件保存视频偶现弹出无相册权限
111浏览 • 1回复 待解决
HarmonyOS 使用位置控件无法满足请求定位场景
293浏览 • 1回复 待解决
HarmonyOS 安全控件的保存控件SaveButton保存图片到相册失败
255浏览 • 1回复 待解决
HarmonyOS 使用定位api无法弹出授权弹窗
535浏览 • 1回复 待解决
HarmonyOS LocalStorage怎么在Navigation中使用
1063浏览 • 0回复 待解决
HarmonyOS 自定义弹窗如何在工具类中使用
461浏览 • 1回复 待解决
HarmonyOS 在依赖library中使用worker报错
918浏览 • 1回复 待解决
HarmonyOS 如何通过安全控件保存视频到相册
200浏览 • 1回复 待解决
在image组件中使用bindContextMenu报错
992浏览 • 1回复 待解决
HarmonyOS .bindSheet() 绑定控件弹窗滑动问题
483浏览 • 1回复 待解决
HarmonyOS如何将自定义弹窗显示在某个控件的位置附近
869浏览 • 1回复 待解决
ArkUI的TextInput组件的customKeyboard使用案例?如何在customKeyboard中使用系统的安全键盘?
1213浏览 • 1回复 待解决
HarmonyOS OAID弹窗无法展示
181浏览 • 1回复 待解决
HarmonyOS 系统picker和安全控件相关内容咨询
354浏览 • 1回复 待解决
HarmonyOS 在builder中使用自定义组件报错
896浏览 • 1回复 待解决
安全控件不能放到屏幕边缘,如果超出屏幕范围一点也会失败。建议使用该组件的时候,先获取屏幕宽度,再设置具体的数值。