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中使用
364浏览 • 0回复 待解决
如何使用安全控件SaveButton进行图片的快速保存
2283浏览 • 1回复 待解决
HarmonyOS 在依赖library中使用worker报错
223浏览 • 1回复 待解决
在image组件中使用bindContextMenu报错
342浏览 • 1回复 待解决
HarmonyOS 在替换GMS的应用中使用HMS Core
106浏览 • 1回复 待解决
HarmonyOS 在builder中使用自定义组件报错
188浏览 • 1回复 待解决
HarmonyOS如何将自定义弹窗显示在某个控件的位置附近
456浏览 • 1回复 待解决
HarmonyOS CanvasRenderingContext2D 支持在 TaskPool中使用吗?
21浏览 • 0回复 待解决
在自定义组件中使用@ObjectLink报错
1031浏览 • 1回复 待解决
getContext(this)能否在自定义类中使用
2202浏览 • 1回复 待解决
HarmonyOS 在使用Web的同层渲染中使用关于滚动的api无效
96浏览 • 1回复 待解决
开源的中间件能否在PolarDB中使用?
2580浏览 • 1回复 待解决
在@watch中使用异步方法后UI反应慢
334浏览 • 1回复 待解决
HarmonyOS promptAction弹窗在axios.request()的回调中无法执行
230浏览 • 1回复 待解决
HarmonyOS Text 中使用 ImageSpan 问题
282浏览 • 1回复 待解决
为什么在 openGauss 中使用“explain timing”时显示错误?
2424浏览 • 1回复 待解决
HAR包中使用window作为Toast时无法引入页面组件
1648浏览 • 1回复 待解决
HarmonyOS 请问使用哪种控件替代视频展示控件SurfaceView?
109浏览 • 0回复 待解决
基础SDK导出的文件为Index.ets,导致SDK无法在调用方的ts文件中使用
925浏览 • 1回复 待解决
为什么在MongoDB中使用Object ID数据类型?
4295浏览 • 1回复 待解决
在DevEco Studio中使用配置好的签名信息签名失败
564浏览 • 3回复 待解决
应用开发时如何全局保存变量,在ets文件中使用
2258浏览 • 1回复 待解决
HarmonyOS在native项目中,如何在c++中使用系统能力,比如使用WIFI\蓝牙能力
310浏览 • 1回复 待解决
HarmonyOS 视频组件无法扩展其安全区域
204浏览 • 1回复 待解决
安全控件不能放到屏幕边缘,如果超出屏幕范围一点也会失败。建议使用该组件的时候,先获取屏幕宽度,再设置具体的数值。