pracuję nad Xamarin.forms Android Project, szukam dala, aby wyświetlić pop-up dla użytkownika:Xamarin.Forms popup "nowa wersja"
nowa wersja
, gdy użytkownik próbuje otworzyć aplikację, a nowa aktualizacja jest dostępna w sklepie.
pracuję nad Xamarin.forms Android Project, szukam dala, aby wyświetlić pop-up dla użytkownika:Xamarin.Forms popup "nowa wersja"
nowa wersja
, gdy użytkownik próbuje otworzyć aplikację, a nowa aktualizacja jest dostępna w sklepie.
Myślę, że najłatwiej byłoby mieć usługę sieciową na własnym serwerze, która zwraca bieżący numer wersji, niestety trzeba zaktualizować ten numer wersji za każdym razem, gdy aktualizujesz aplikację w sklepie.
thx, put wolę znaleźć dynamiczne rozwiązanie –
private class GetVersionCode extends AsyncTask<Void, String, String> {
@Override
protected String doInBackground(Void... voids) {
String newVersion = null;
try {
newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + SplashActivity.this.getPackageName() + "&hl=it")
.timeout(30000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get()
.select("div[itemprop=softwareVersion]")
.first()
.ownText();
return newVersion;
} catch (Exception e) {
return newVersion;
}
}
@Override
protected void onPostExecute(String onlineVersion) {
super.onPostExecute(onlineVersion);
String currentVersion = null;
try {
currentVersion = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (onlineVersion != null && !onlineVersion.isEmpty()) {
if (Float.valueOf(currentVersion) < Float.valueOf(onlineVersion)) {
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(SplashActivity.this);
alertDialogBuilder.setTitle("Product Update");
alertDialogBuilder.setMessage("A new version is available. Would you like to Upgrade now? (Current: "+currentVersion+" Latest: "+onlineVersion+")");
alertDialogBuilder.setPositiveButton("ok",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+SplashActivity.this.getPackageName())));
}
});
alertDialogBuilder.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialogBuilder.setCancelable(true);
finish();
loginUserCheck();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
możesz dodać więcej opisu –
Po prostu weź nową wersję aplikacji z playstore i sprawdź Twoja obecna wersja jest większa niż wersja aplikacji, jeśli jest większa, po prostu pop-up –
Utwórz plik tekstowy z najnowszą wersją na koncie GitHub Gist.
Get surowego adresu URL
ciąg url = "https://gist.githubusercontent.com/YOUR_ACCOUNT_NAME/0df1fa45aa11753de0a85893448b22de/raw/UpdateInfo.txt";
, która zwróci najnowszą wersję aplikacji. i skontaktować się z istniejącej wersji aplikacji aktywności
var versionName = Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionName;
var currentVer = double.Parse(versionName);
ale trzeba aktualizować ten numer wersji w dowolnym momencie zaktualizować aplikację w Sklepie Play.
Dobre rozwiązanie. Ale wciąż wolę dynamiczne rozwiązanie –
Sprawdziłeś aplikację hokejową? –
Czytałem o tym .. może użyję tego –
Dlaczego chcesz to zrobić w pierwszej kolejności? Czy sklep nie aktualizuje się automatycznie do nowszych wersji, jeśli publikujesz swoją aplikację? – SilentStorm