Deep Linking

在使用手機、平板瀏覽 google 查詢結果時,若該連結可以直接導向手機已安裝的 app,
那會是怎樣的體驗呢?
現在有許多 app 相繼支援 google Deep Linking,增加使用者對 app 的黏著度,
如 google+、twitter,你的 app 也可以唷。

怎麼作呢?
我這邊稍作簡介,詳細可至 Android Deep Link 參考。
主要在 AndroidManifest.xml 加上 intent-filter 標籤,
範例:

<activity android:name="com.recipe_app.client.RecipeActivity"
          android:label="@string/app_name" >
    <intent-filter android:label="@string/app_name">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://recipe-app.com/recipe" -->
        <data android:scheme="http"
              android:host="recipe-app.com"
              android:pathPrefix="/recipe" />
    </intent-filter>
</activity>

<data> 裡可設置網頁的各個 pattern,意思是怎樣的網址會連到自己的 app 呢?
如上例,
android:scheme="http" host="recipe-app.com" android:pathPrefix="/recipe"

當 google 找到 http://recipe-app.com/recipe/ 這網址目錄下的各網頁,且手機中有安裝你的 app,
那麼 google 就會將網址帶到你的 app,你的 app 須覆寫 OnNewIntent ,接收網址資料,
再轉至你希望使用者看到的頁面 (Active)。

<data> 可設置的相關 attribute 如下

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]



開發時,若要測試 app,請參考 google Enable Deep Linking to your App

reference:
Android Deep Link 解析
Enable Deep Linking to your App
data element

留言

這個網誌中的熱門文章

相見恨晚的自動化測試開發工具 Sikuli

[IIS] 自我簽署憑證來啟用SSL

台北市安心地圖