Xamarin Forms中如何从Play Store获取VersionCode实现应用更新检测
实现方案分Android、iOS及跨平台框架场景给出:
Android 端获取versionCode
通过系统自带的PackageManager即可读取,需要适配安卓9.0及以上版本的API变更,示例代码:
// Kotlin 示例 val packageInfo = packageManager.getPackageInfo(packageName, 0) val versionCode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { packageInfo.longVersionCode } else { @Suppress("DEPRECATION") packageInfo.versionCode }
iOS 端获取versionCode
iOS中与versionCode对应的是构建号CFBundleVersion,从应用的Info.plist中读取即可:
// Swift 示例 guard let infoDict = Bundle.main.infoDictionary, let versionCode = infoDict["CFBundleVersion"] as? String else { // 异常分支可自行添加兜底逻辑 return } // 如需数值比对可转成Int类型 let codeInt = Int(versionCode) ?? 0
跨平台框架获取方案
- Flutter:使用
package_info_plus库,读取返回结果的buildNumber字段即可 - React Native:使用
react-native-device-info库,调用getBuildNumber()方法获取 - UniApp:直接调用
plus.runtime.versionCode即可拿到数值型版本号
版本比对注意事项
- 不要直接用versionName做比对,语义化的版本字符串(如2.3.1)直接做字符串比对容易出现逻辑错误,用数值型的versionCode比对稳定性更高
- 服务端的版本更新接口需要同时返回
versionName(用于给用户展示更新说明)和versionCode(用于逻辑比对),只要当前应用的versionCode小于服务端返回的最新versionCode,即可触发更新引导
内容的提问来源于stack exchange,提问作者Adit Kothari
相关产品推荐
相关产品推荐

