HarmonyOS 鸿蒙Next中使用外链拉起浏览器时,勾选30天不再提示不生效的问题如何解决
HarmonyOS 鸿蒙Next中使用外链拉起浏览器时,勾选30天不再提示不生效的问题如何解决
【问题现象】
在应用内部打开外链时,第一次弹窗之后勾选了30天不再弹窗,在不清掉应用的情况下,再次点击跳转外链还是会弹窗。
问题代码如下:
let want: Want = {
action: 'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
abilityName: 'MainAbility',
uri: 'https://developer.huawei.com/consumer/cn/blog/topic/03147442746907029',
}
let uiContent = getContext() as common.UIAbilityContext
uiContent.startAbility(want)
【背景知识】
- Want是一种对象,用于在应用组件之间传递信息。
- 常见的使用场景是作为startAbility()方法的参数。例如,当UIAbilityA需要启动UIAbilityB并向UIAbilityB传递一些数据时,可以使用Want作为一个载体,将数据传递给UIAbilityB。
【定位思路】
观察代码可以发现,上述代码在通过startAbility(want)拉起浏览器的时候,want参数填写是有问题的,正常来说设置了abilityName字段同时也需要设置bundleName才能正确的设置显示拉起。或者就是两个字段都不设置,让系统隐式拉起。基于这个思路尝试修改代码,看是否解决问题。
【解决方案】
基于问题代码,补充want信息的bundleName字段,或者去掉abilityName字段:
- 如果需要显示拉起,就添加上bundleName。
代码示例如下:
let want: Want = {
action:'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
abilityName:'MainAbility',
bundleName:'xxx',
uri:'https://developer.huawei.com/consumer/cn/blog/topic/03147442746907029',
}
let uiContent = getContext() as common.UIAbilityContext
uiContent.startAbility(want)
- 如果需要隐式拉起,则去掉abilityName。
代码示例如下:
let want: Want = {
action: 'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
uri: 'https://developer.huawei.com/consumer/cn/blog/topic/03147442746907029',
}
let uiContent = getContext() as common.UIAbilityContext
uiContent.startAbility(want)
最终验证这两种方式都可以解决跳转系统浏览器时,勾选不再提示不生效的问题。
更多关于HarmonyOS 鸿蒙Next中使用外链拉起浏览器时,勾选30天不再提示不生效的问题如何解决的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next中使用外链拉起浏览器时,勾选30天不再提示不生效的问题如何解决的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用外链拉起浏览器时,勾选“30天不再提示”不生效的问题
在HarmonyOS鸿蒙Next中,使用外链拉起浏览器时,勾选“30天不再提示”不生效的问题,可能是由于系统或应用的缓存机制未正确处理该选项。
解决方案
- 确保系统版本和应用版本均为最新,以排除已知的兼容性问题。
- 检查应用的权限设置,确保其具有存储和读取用户偏好的权限。
- 如果问题依然存在,可以尝试清除应用缓存或重新安装应用,以重置相关设置。
- 开发者可以通过调试工具检查应用在勾选“30天不再提示”时的日志信息,确认是否有异常或错误提示。
- 如果问题仍未解决,建议查阅鸿蒙开发者文档,确认是否存在相关API的调用限制或已知问题。