潮流
潮流
  • 发布:2024-06-19 17:58
  • 更新:2024-10-15 14:33
  • 阅读:128

【报Bug】高德小程序投放失败,onAppShow onAppHide等方法不支持

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 14.4.1

第三方开发者工具版本号: 3.8.21

基础库版本号: 2.9.31

项目创建方式: CLI

CLI版本号: 3.0.0-3090820231124001

示例代码:

function initAppLifecycle(appOptions, vm) {
if (isFunction(appOptions.onLaunch)) {
const args = my.getLaunchOptionsSync && my.getLaunchOptionsSync();
appOptions.onLaunch(args);
}
if (isFunction(appOptions.onShow) && my.canIUse('my.onAppShow')) {
my.onAppShow((args) => {
vm.$callHook('onShow', args);
});
}
if (isFunction(appOptions.onHide) && my.canIUse('my.onAppHide')) {
my.onAppHide((args) => {
vm.$callHook('onHide', args);
});
}
}

操作步骤:

uniapp源代码
function initAppLifecycle(appOptions, vm) {
if (isFunction(appOptions.onLaunch)) {
const args = my.getLaunchOptionsSync && my.getLaunchOptionsSync();
appOptions.onLaunch(args);
}
if (isFunction(appOptions.onShow) && my.onAppShow) {
my.onAppShow((args) => {
vm.$callHook('onShow', args);
});
}
if (isFunction(appOptions.onHide) && my.onAppHide) {
my.onAppHide((args) => {
vm.$callHook('onHide', args);
});
}
}

预期结果:

function initAppLifecycle(appOptions, vm) {
如果是高德小程序直接为空,不用处理
}

实际结果:

function initAppLifecycle(appOptions, vm) {
if (isFunction(appOptions.onLaunch)) {
const args = my.getLaunchOptionsSync && my.getLaunchOptionsSync();
appOptions.onLaunch(args);
}
if (isFunction(appOptions.onShow) && my.canIUse("my.onAppShow")) {
my.onAppShow((args) => {
vm.$callHook("onShow", args);
});
}
if (isFunction(appOptions.onHide) && my.canIUse("my.onAppHide")) {
my.onAppHide((args) => {
vm.$callHook("onHide", args);
});
}
}

bug描述:

待解决问题类型: 投递端不可用api
my.getLaunchOptionsSync
问题:
调用了 JsApi: my.getLaunchOptionsSync
解决方案:
该JSAPI在当前端并不支持,需要使用my.canIUse在运行时判断,然后根据返回结果来控制是否执行该JSAPI相关的业务代码

示例代码
if(my.canIUse('my.getLaunchOptionsSync')){
//如果该JSAPI在当前端支持,在这里写入涉及该JSAPI的相关业务逻辑代码
}
my.onAppShow
问题:
调用了 JsApi: my.onAppShow
解决方案:
该JSAPI在当前端并不支持,需要使用my.canIUse在运行时判断,然后根据返回结果来控制是否执行该JSAPI相关的业务代码

示例代码
if(my.canIUse('my.onAppShow')){
//如果该JSAPI在当前端支持,在这里写入涉及该JSAPI的相关业务逻辑代码
}
my.onAppHide
问题:
调用了 JsApi: my.onAppHide
解决方案:
该JSAPI在当前端并不支持,需要使用my.canIUse在运行时判断,然后根据返回结果来控制是否执行该JSAPI相关的业务代码

示例代码
if(my.canIUse('my.onAppHide')){
//如果该JSAPI在当前端支持,在这里写入涉及该JSAPI的相关业务逻辑代码
}

需要对高德小程序特殊处理以上方法,源代码如下

2024-06-19 17:58 负责人:无 分享
已邀请:
a***@163.com

a***@163.com

请问这个问题解决了吗?

要回复问题请先登录注册