deeplink 就是利用一個特定的連結,http://ted/123
然後假設user點擊該連結,如果該user有安裝 app則會開啟我的app
如果user沒有安裝app就會前往googleplay
今天要來介紹如何達到facebook 的 deeplink
目前facebook 有提供兩種 deeplink 的方式
第一種是你有特定的網站,特定的展示頁面
第二種是你沒有特定的網站,你只想create特定的連結
第一種是你有特定的網站,特定的展示頁面
例如下面的網站
http://tw.91mai.com/SalePage/Index/754680
這是一個銷售商品的頁面,我希望user在手機前往該頁面時會導向我手機版相對應的頁面
這時候我就可以使用第一種方法
方法其實很簡單,你只需要在網頁上加上 facebook 指定的meta即可
<head>
<meta property="al:android:url" content="com.mypackage://story/1234">
<meta property="al:android:package" content="com.mypackage">
<meta property="al:android:app_name" content="myappName">
<meta property="og:title" content="title" />
<meta property="og:type" content="website" />
</head>
其中url 為 app要處理的資料,利用該資料就可以知道該user是在哪個頁面,我們就可以將app導向特定的頁面package name就是app的 package name 這一個一定要跟app相同,否則會不work
app_name經過我的測試,隨便寫都可以
og:title 和 og:type 似乎是 必填欄位,如果沒特定需求就照著填就好了
更多相關的設定可以參考 http://applinks.org/documentation/
接著只要在app內加入這樣的程式碼就可以囉
<activity android:name=".MainActivity"
android:label="@string/app_name" >
...
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="com.mypackage" />
</intent-filter>
</activity>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this);
...
Uri targetUrl =
AppLinks.getTargetUrlFromInboundIntent(this, getIntent());
if (targetUrl != null) {
Log.i("Activity", "App Link Target URL: " + targetUrl.toString());
}
}
targetUrl就是特定的網址,我們就可以利用該url判斷應該導到app的哪個頁面第二種是你沒有特定的網站,你只想create特定的連結
首先根據facebook 文件
你可以將你需要的參數填入,
其中最重要的是 url 你想帶入app的網址
package 你要開啟的app
curl https://graph.facebook.com/app/app_link_hosts \
-F access_token="APP_ACCESS_TOKEN" \
-F name="Android App Link Object Example" \
-F android=' [
{
"url" : "sharesample://story/1234",
"package" : "com.facebook.samples.sharesample",
"app_name" : "ShareSample",
},
]' \
-F web=' {
"should_fallback" : false,
}'
接著你會得到一組id{"id":"643402985734299"}
接著在利用下方網址 將上面的id 帶入curl -G https://graph.facebook.com/643402985734299 \-d access_token="APP_ACCESS_TOKEN" \
-d fields=canonical_url \
-d pretty=true
接著會得到一組網址{
"canonical_url": "https://fb.me/643402985734299",
"id": "643402985734299"
}
這個網址就是我們創造出來的網址,我們可以將這個網址貼到facebook上,只要有人點擊該link 有裝app 就會前往我們的app,沒有app的就會被導向googleplay當然app還是要依照第一種方法做設定,這樣才app才可以攔截到該url,並且導到我們希望的頁面
你好,想问这一行“meta property="al:android:url" content="com.mypackage://story/1234" ” 的content的参数怎样取得呢?我该怎样有"com.mypackage://story/1234" 这种路径呢?谢谢你
回覆刪除