在Xamarin的App開發時,如何加入AppLink以解決App的孤島問題提升App使用率…iOS篇
主題: |
在Xamarin的App開發時,如何加入AppLink以解決App的孤島問題提升App使用率…iOS篇 |
文章簡介: |
每個開發者辛苦製作的App發布後,當然都希望可以自己的App在使用者的手機上,能夠更快更方便的來使用,甚至可以彼此互相串聯,以解決App的孤島現象。那AppLink就是當前解決App孤島現象不可或缺的手法,就讓本文章的介紹教你如何在Xamarin所做的App當中使用AppLink吧~ |
作者: |
James Tsai |
版本/產出日期: |
V1.0/2016.7.28 |
1. 前言
• AppLink是當前App解決孤島現象的重要手法,那在Xamarin所製作的App當中,如何做呢?就讓本文章的介紹教你解決吧~
2. 環境準備
• Windows 8/8.1/10
• Visual Studio 2015 / Xamarin Studio
3. 本文
在AppLink的製作上該要處理的面向
• 在App當中要增加AppLink的時候,大致上分成兩個面向要處理。
一、處理從其他的App進來的連結要求。
二、Browser或另外的App連結進入。
處理從其他的App進來的連結要求
• 這篇是iOS篇,所以我們先建立一個Xamarin.iOS全新的BlankApp(iPhone)的範本專案。
• 在此建立好的專案當中,我們在透過新增一個獨立的UIViewController,並把此UIViewController的類別名命名為ProductViewController,同時會增加一個ProductViewController.xib。
• 接著在ProductViewController.xib當中增加兩個Label,其中之一個Label的文字設定為”Product ID:”,另一個Label的Name命名為productIdLabel:
• 接著打開ProductViewController.cs,建立一個私有欄位”_productId”另外再加入可供傳遞productId參數的一個建構函式,並在該建構函式當中將productId設定給私有欄位_productId。
• 再繼續找到被複寫的ViewDidLoad方法當中,並增加以下程式碼:
• 接著打開AppDelegate.cs,找到被複寫的FinishedLaunching方法,並且增加以下程式。
• 接著繼續自行複寫兩個OpenUrl的方法。
• 在這邊只簡單的測試撰寫iOS 9.0後會使用到的OpenUrl方法內部的實作程式碼。
• 最後在打開info.plist這個檔案。注意此部分的編輯在Visual Studio當中無法處理(但仍可直接編輯XML)。下圖是在Xamarin Studio當中來打開info.plist後,點選到Advanced分頁,並在URL Type當中點擊Add URL Type。
• 然後接著在identifier當中輸入”com.example.app1”,在URL Scheme當中輸入
“myapplinktestapp1”,在Role當中選擇Viewer。
Browser或另外的App連結進入解決辦法
• 無論是Browser或是另外App連結進入,大致上會用到的連結格式如下:
所以在我們的這個例子當中,按照前述所定義的scheme是myapplinktestapp1,host是products,所以就是採用”myapplinktestapp1://products”。再加上我們要用到的” ?id=12345”當作資料,那串接起來就變成"myapplinktestapp1://products?id=12345"。
• 首先先談談Browser。若在網頁上有定義"myapplinktestapp1://products?id=12345"這樣的連結出現(如下圖呈現)。
當使用者用手機的瀏覽器瀏覽此網頁並且擊該連結,而手機上如果已經裝有這個App,iOS就會先詢問使用者是否要直接啟動到這個App,而再透過我們之前在AppDelegate當中,自行覆寫的OpenUrl方法中的處理程式來啟動ProductViewController,並且將12345帶入productIdLabel的文字當中。
• 另外的App直接進入其實也不難,只要NSUrl的建立指定好所需的Uri即可。所以在我們的這個例子當中是”myapplinktestapp1://products?id=12345”,再使用UIApplication.SharedApplication.OpenUrl的方法做該Url的切換即可,如下圖程式碼:
• 那這樣在該App2點選此按鈕時,iOS就會先詢問使用者(第一次時會詢問)是否要跳到我們所指定的那個App1的Url位址,點選確認後根據我們所寫的程式,啟動ProductViewController,並且帶入id的資訊。
4. 參考來源
• Applinks規範文件
http://applinks.org/documentation/
• App Links for iOS
https://developer.xamarin.com/recipes/cross-platform/app-links/app-links-ios/