[WindowsPhone] 一個不需要找Server但可以手動提供更新資料的小技巧

2013-10-02

最近,遇到一些剛學Windows Phone 開發的朋友,因為畢竟一開始學習並非是走Web 領域的,那時候就問我說除了使用人家提供的RSS或是Facebook 有提供的Graph data 以外,是否有辦法用自己的資料,我就說當然可以,首先你得準備一台Server放在網路上面讓人更新,當然這是一個成本考量,更高級一點你可以使用雲端(Windows Azure) ,這邊開始朋友就有點打退堂鼓,當然你可以選擇一個免費空間囉,不過不知道那免費空間可以多久,可能也會有因為它會自動插入廣告,導致拿到的資料都不乾淨,現在提供一個小小的技巧..

文章範例我會用一個Windows Phone 的開發環境,從網路上面取得資料,我們所使用的資料提供平台為 Google Drive 

1. 首先,當然你要申請一個Google Drive的帳號
2. 我們開一個檔案夾為PUBLIC 之後我開啟記事本 內容我就填寫一個數字10 並且存檔為 current_verdsion.txt


2013-10-02_154011

之後存檔,如果你不想之後會有編碼問題盡量在編碼的地方選擇UTF-8

2013-10-02_154000

3.之後我們登入網路上的 Google Drive  將剛剛那個檔案設成公開且共用

2013-10-02_154121

2013-10-02_154134

這時候我們會拿到此檔案的Share link

2013-10-02_155111

此案例 共用連結為 https://docs.google.com/file/d/0B-dEejBMoYa0Tkh0X1A3UWZ5R00/edit?usp=sharing

4. 基本上這網址你拿到的並非乾淨的資料,如果你直接用WebClient去取的話,所以這時候我們得知道direct download link ,我發現到有一個網站可以轉換 網址為 https://sites.google.com/site/gdocs2direct/

這時候,我們把共用連結貼上去就會取得 他的下載連結

2013-10-02_154204

文中案例取得下載連結為 https://docs.google.com/uc?export=download&id=0B-dEejBMoYa0Tkh0X1A3UWZ5R00

5. 得到下載連結我們可以來寫程式拉


//下載Link
//https://docs.google.com/uc?export=download&id=0B-dEejBMoYa0Tkh0X1A3UWZ5R00
 
var webClient = new WebClient { Encoding = System.Text.Encoding.UTF8 };
webClient.DownloadStringCompleted += (s, eventArgs) =>
    {
        if (eventArgs.Error != null)
        {
            MessageBox.Show("取得失敗");
            return;
        }
 
        MessageBox.Show("網路上的資料為 " + eventArgs.Result);
    };
 
webClient.DownloadStringAsync(new Uri("https://docs.google.com/uc?export=download&id=0B-dEejBMoYa0Tkh0X1A3UWZ5R00", UriKind.Absolute));

結果:
22

後記: 這有啥應用呢? 首先,最大的方便是你可以不需要特地弄一台server來擺資料 ,這點就已經很方便了不然可能花錢還要花時間顧,再來你可以透過桌面應用程式(記事本) 直接存到硬碟上,透過google drive 他們的軟體同步上去,之後手機程式在下載時候都可以取道最新資料,因為我現在有些APP都透過這方法取得版本是否為最新版本讓使用者更新,這是開發上的小技巧,不難,分享給大家。


當麻許的超技八 2014 | Donma Hsu Design.