Nasıl bir masaüstü uygulaması bir web sitesinden geri bilgi almak nedir?

4 Cevap php

Ben bir masaüstü uygulama geliştirici değilim. Ben yazdım bir uygulama satmak için hangi temel bir web sitesi oluşturmak ve yol boyunca bazı web teknoloji öğrenme, ancak henüz çok (benim seçilmiş CMS öğrendim değil kulüpler - Şimdiye kadar çok PHP öğrenme beni kurtardı - Textpattern .)

Benim masaüstü uygulaması benim web sitesini arayıp "ben sürüm xxxx değilim" demek istiyorum, ve ben bunun bir yanıtı geri almak gerekir - en az "/ 't bir güncelleştirme orada değil bir", tercihen de "bir xkb indir bulunuyor ve bu özelliklere sahip ... "- Ben kullanıcılara bilgileri görüntülemek ve indirmek istiyorsanız isteyin böylece.

(Ben QT'ın QtNetwork modülü yuvarlak kafamı bir kez olsun) benim app bir istek gönderebilirsiniz. Benim soru web sitesinden uygun bir yanıt oluşturmak ve göndermek için edebilmek için öğrenmek gerekiyor, ne olduğunu.

Ben gerekli yeni teknoloji / dil öğrenme iyiyim, ben sadece doğru şeyler öğrenme ve yanlış yolda gitmiyorum emin olmak istiyorum. Herhangi bir yardım çok takdir.

4 Cevap

Bir webcoder kullanmak için basit yolu DİNLENME yoluyla olmaktadır:

Burada "versioncheck.php" sunucu document_root olarak kaydedilen bir çok hızlı ve kirli PHP Script - basitçe nokta elçi göndermek almak için:

<?
define ("CURRENT_VERSION", "5");

$version = $_REQUEST['version'];

if ($version < CURRENT_VERSION) print "Update required";
else print "YOU'RE ALL GOOD";
?>

Sizin app http://wwww.yoursever.com/versioncheck.php?version=2 çağırır

So let's assume your desktop app has a function called "getHTTP" which can retrieve an HTTP page. And the variable "currentVersion" is your desktop apps current version number.
So your code would be something like this:

//NOTE: I don't know the syntax of your desktop app's language, so just treat this as highlevel pseudo code.

/** all sorts of other goodness **/
//CheckVersion
upgrade = getHTTP("http://wwww.yoursever.com/versioncheck.php?version="+currentVersion); 
if (upgrade == "Update Required") then doUpdate(); // doUPdate is some function you've defined to act as a handler for when an update needs to occur
else
{
... continue on with app ...
}

Kolay yolu HTTP protokolünü kullanmaktır. Bir get argüman (yani "www.yoursite.com/auto/update.php?version=1.0.2") ve arka HTML yerine yankı şey, örneğin "güncel" veya "yeni sürüm olarak app sürümünü Pass: 1.1.0. "

Ne olursa olsun, dil ve platform için masaüstü tarafı ile size yardımcı olmak için kütüphanelerin bir dizi gidecekseniz (QT HTTP şeyler içeriyorsa ben sadece kendinizi tüm HTTP başlık şeyler yapabileceğini varsayalım rağmen, emin değilim) kullanarak.

EDIT: php tarafı ne için, gibi basit bir şey olabilir

(Umarım bu mantık doğru, ben sadece :) hızlı bir şekilde geldi)

<?php
    //change this whenever you bring out a new version
    $current_version = array(1, 1, 0);

    $version = $_GET['version'];

    //split the version string into the 3 numeric parts
    $version = split('.', $version);

    //compare $version and $current_version
    if(    $version[0] < $current_version[0]
        || $version[1] < $current_version[1]
        || $version[2] < $current_version[2])
    {
        echo "update_needed, $current_version[0].$current_version[1].$current_version[2]";
    }
    else echo "up_to_date";
?>

Eğer "xxx" için farklı bir sürüm dizesini kullanırsanız, Ön yüz sonra gerektiği gibi kodunu değiştirmek için gerekir. Eğer sadece tek bir sürüm numarası için karar verirseniz, ($ version <$ current_version) eğer tek bir ile dizi şeyler değiştirebilirsiniz.

Olası (test, beta, vb sırasında) mevcut sürümünden daha yeni bir sürümünü almak için EĞER kullanıcı bir 2.0.0 test sürümü olsaydı bu kodu yanlış örneğin (bir güncelleştirme bildirebilir, ve "resmi" sürüm 1.3 idi 0 <3) böylece bu işlemek için onu değiştirmeniz gerekir, çünkü 0,0 o ancak umarım fikir olsun, bir güncelleme gerekli söyleyebilirim.

HTTP XML / JSON ile iyi bir başlangıç ​​noktasıdır.

XML / JSON sorgu için sunucu tarafı cevap HTTP üzerinden gönderdik.

Senin durumunda, sadece de sadece web sunucusu tarafından hizmet edilen bir XML belge olabilir.

Bu uygulama için bir talepte sahip olarak basit olabilir

http://website.com/checkupdates.php?v=<current_version>

Programınız current_version doldurur.

Php komut orada yeni bir sürüm ve buna göre bilgi ile yanıt olmadığını denetler.