HarmonyOS 鸿蒙Next App新版本已审核通过,updateManager.checkAppUpdate接口检查不生效
HarmonyOS 鸿蒙Next App新版本已审核通过,updateManager.checkAppUpdate接口检查不生效
App新版本已审核通过,updateManager.checkAppUpdate接口检查不生效,代码:
updateManager.checkAppUpdate(getContext() as common.UIAbilityContext)
.then((checkResult: updateManager.CheckUpdateResult) => {
if (checkResult.updateAvailable == 1) {
this.VersionName = ‘可供更新版本’ + res.result.version;
} else {
this.VersionName = ‘已是最新版本’ + CommonConstants.VERSION;
}
console.info(“Succeeded in checking Result updateAvailable:” + checkResult.updateAvailable);
})
.catch((error: BusinessError) => {
console.info(checkAppUpdate onError.code is ${error.code}, message is ${error.message}
);
});
应用内检测升级:终端用户启动应用时,应用市场检测到该应用有新版本会通知终端用户,可以到应用市场进行应用的下载更新。
但实际上应用程序包的更新最终都是到应用市场进行应用的下载更新,无法实现在应用内进行更新。
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/store-updatemanager-V5
可以参考demo:
import { updateManager } from '@kit.StoreKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import type { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import Want from '@ohos.app.ability.Want';
import { bundleManager } from '@kit.AbilityKit';
let context: common.UIAbilityContext = getContext() as common.UIAbilityContext;
let bundleInfo: bundleManager.BundleInfo =
bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
@Entry
@Component
struct AppPage {
@State message: string = 'Hello World';
build() {
RelativeContainer() {
Text(this.message)
.id('AppPageHelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
Button('app').onClick(() => {
try {
updateManager.checkAppUpdate(context)
.then((checkResult: updateManager.CheckUpdateResult) => {
hilog.info(0, 'TAG',
"Succeeded in checking Result updateAvailable==检查到新版本:" + checkResult.updateAvailable);
updateManager.showUpdateDialog(context)
.then((resultCode: updateManager.ShowUpdateResultCode) => {
hilog.info(0, 'TAG', "Succeeded 显示升级对话框:" + resultCode);
//应用内无法更新,需要用应用市场下载,拉起应用市场
const want: Want = {
// 指定appid
//uri: `store://appgallery.huawei.com/app/detail?id=${appId}`
// 打开应用商店
uri: `store://appgallery.huawei.com/app`
};
const context = getContext(this) as common.UIAbilityContext;
context.startAbility(want).then(() => {
//拉起成功
}).catch(() => {
// 拉起失败
});
})
.catch((error: BusinessError) => {
hilog.error(0, 'TAG', `显示升级对话框 onError.code is ${error.code}, message is ${error.message}`);
});
}).catch((error: BusinessError) => {
hilog.error(0, 'TAG', `检查到新版本 onError.code is ${error.code}, message is ${error.message}`);
});
} catch (error) {
hilog.error(0, 'TAG', `checkAppUpdate onError.code is ${error.code}, message is ${error.message}`);
}
})
}
.height('100%')
.width('100%')
}
}
app.json5中的versionCode和versionName您这边都修改了吗,特备是versionCode,app升级是根据versionCode判断,versionCode和versionName必须同时增加,只增加versionCode不会触发用户版本更新~
我本地的versionCode,大于线上包的versionCode。已解决
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
一样 请问解决了吗?
针对您提到的HarmonyOS鸿蒙Next App新版本已审核通过,但updateManager.checkAppUpdate
接口检查不生效的问题,可能涉及多个层面的原因。首先,请确保您的代码中updateManager.checkAppUpdate
的使用方式符合官方文档规范,包括正确的参数传递和回调处理。
其次,检查App的签名和包名是否与上架时的信息一致,因为不一致会导致更新检查失败。同时,确认新版本App是否已正确发布到华为应用市场,并且更新策略(如强制更新、提醒更新等)设置无误。
此外,考虑到鸿蒙系统的特性,还需确认设备是否已登录华为账号,以及是否开启了应用自动更新或手动检查更新的权限。部分系统权限设置可能影响更新检测的准确性。
最后,由于系统或应用市场的缓存问题,有时也会导致更新检测延迟或失效。尝试清除应用缓存或重启设备,看是否能解决问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。他们将能提供更具体的技术支持和解决方案。