gpt4 book ai didi

android - PhoneGap Android 获取应用版本代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:00 26 4
gpt4 key购买 nike

我正在使用 jQueryMobile 构建一个 phonegap android 应用程序。

我想构建一个功能,使用网络服务检查应用程序的版本代码,以便建议更新,如果应用程序已过时,则提示到 google play 商店。

根据我的搜索,PhoneGap 似乎没有找到版本代码的方法。

有没有办法做到:

  • 没有在 Java 类中编写任何内容?
  • 无需在每次推送新版本时手动存储更新的变量?

或者,如果在类中编写是必不可少的,我如何从 PhoneGap 中调用它?

编辑:我用可行的解决方案编辑了接受的答案!我希望每个人都能从中受益。

编辑 (2):这是带有说明的完整插件 repo 协议(protocol),请随时 fork 它:) https://github.com/gcatalfamo/Version

最佳答案

我知道您问过不编写 Java 类,但无论如何您都需要编写一个。您需要按照 Andre 的说明编写 PhoneGap Plugin

创建自定义 PhoneGap 插件:

在您的应用程序包中创建一个新类:

package com.phonegap.plugins; //your package name

import org.json.JSONArray;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
import org.apache.cordova.api.PluginResult.Status;

public class Version extends Plugin {

public final String ACTION_GET_VERSION_NAME = "GetVersionName"; //not used in this version
public final String ACTION_GET_VERSION_CODE = "GetVersionCode";

@Override
public PluginResult execute(String action, JSONArray args, String callbackId) {
PluginResult result = new PluginResult(Status.INVALID_ACTION);
PackageManager packageManager = this.cordova.getActivity().getPackageManager();
if(action.equals(ACTION_GET_VERSION_CODE)) {
try {
PackageInfo packageInfo = packageManager.getPackageInfo(this.cordova.getContext().getPackageName(), 0);
result = new PluginResult(Status.OK, packageInfo.versionCode);
}
catch (NameNotFoundException nnfe) {
result = new PluginResult(Status.ERROR, nnfe.getMessage());
}
}

return result;
}
}

在 plugins.xml 中,添加以下行:

<plugin name="Version" value="your.package.Version" />

在您的deviceready 事件中添加以下代码:

var Version = function() {};
Version.prototype.getVersionCode = function(successCallback, failureCallback) {
return cordova.exec(successCallback, failureCallback, 'Version', 'GetVersionCode', []);
};

if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.version) {
window.plugins.version = new Version();
}

然后,您可以通过以下方式获取 versionCode 属性:

window.plugins.packageManager.getVersionCode(
function(versionCode) {
//do something with versionCode
},
function(errorMessage) {
//do something with errorMessage
}
);

关于android - PhoneGap Android 获取应用版本代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com