這里是針對facebook鏈接分享,點擊分享鏈接的跳轉(zhuǎn)進行的處理。首先我們需要知道的是,facebook分享鏈接時,我們看到的是一個帶有對應(yīng)圖片、描述、鏈接的展示,這是facebook,主動去分享的網(wǎng)頁上爬取的數(shù)據(jù)信息。

我們可以通過facebook的分享鏈接調(diào)試工具,進行預(yù)覽。我們所分享的鏈接是什么展示效果。
接下來就是各平臺的配置,驗證測試,和分享頁面格式的例子。
分享網(wǎng)頁是個啥樣子,參考:https://blog.csdn.net/u010479969/article/details/90486576
安卓平臺
- 按照facebook 官網(wǎng)指導(dǎo)配置好平臺相關(guān)配置。
1)facebook后臺配置:
必填項都填寫好。 對于深度鏈接必須勾選打開,否則無法拉起app應(yīng)用。
image.png
2)安卓工程配置。
AndroidMainfest.xml配置,添加自定義的scheme
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!--data android:scheme="隨便填" android:host="隨便填"/-->
<!--例如-->
<data android:scheme="myapp" android:host="test"/>
</intent-filter>
</activity>
PS:但是我發(fā)現(xiàn)一個坑點。我在xml中這么配置,但在測試時,只能拉起一個顯示應(yīng)用名的啟動頁面,沒有真正的啟動應(yīng)用。然后我修改了這段配置,將這段<intent-filter>添加到啟動activity段中,然后再次測試就ok了。
<activity
android:name="org.cocos2dx.javascript.AppActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:usesCleartextTraffic="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:taskAffinity="" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="test"/>
</intent-filter>
</activity>
這樣后,一個可以被外部鏈接拉起的app配置就ok了。
3)測試
可以自己寫一個簡單的html網(wǎng)頁,然后在手機上打開網(wǎng)頁,就可以測試了。例如:
<html prefix="og: http://ogp.me/ns#">
<body>
<a href="myapp://test/">test</a>
</body>
</html>
在手機上打開這個html,點擊test,如果安裝了這個app,就可以拉起app了。
IOS平臺
1)facebook后臺配置,同樣的,除了必填內(nèi)容,深度鏈接必須勾選打開。

2)xcode工程配置。
在Info-->URL Types中添加我們自定義的URL Schemes

同樣的這個也是可以隨意自定義的。
3)測試
可以直接在safari瀏覽器中,輸入地址:myapp://test,前往,如果已安裝,就可以拉起應(yīng)用了。
分享鏈接的地址html怎么配置。
我們分享鏈接的時候,都是有一個地址的。
例如:http://www.xxx.com/share.html,這個html是由我們自己去開發(fā)實現(xiàn)的,然后放在一個我們客戶端能夠訪問到的位置,例如:熱更服務(wù)器等。
下面就是這個share.html文件的內(nèi)容。它實現(xiàn)了,如果已安裝應(yīng)用則拉起應(yīng)用,沒有安裝,則跳轉(zhuǎn)到對應(yīng)平臺商店。
<html prefix="og: http://ogp.me/ns#">
<head>
<title>gamecenter</title>
<meta property="fb:app_id" content="你的facebook_app_id">
<meta property="og:type" content="website" />
<meta property="og:title" content="你的應(yīng)用名稱" />
<meta property="og:description" content="鏈接展示的描述內(nèi)容" />
<!-- <meta property="og:image" content="鏈接可以看到的圖片,圖片對應(yīng)的地址(例如:www.xx.com/img.png)"/> -->
<meta property="og:image" content="www.xx.com/img.png"/>
<!-- 安卓平臺對應(yīng)配置 -->
<meta property="al:android:url" content="myapp://test"> <!-- 對應(yīng)配置的scheme+ “://”+host -->
<meta property="al:android:package" content="你的應(yīng)用包名">
<meta property="al:android:app_name" content="你的應(yīng)用名稱">
<meta property="al:ios:url" content="myapp://test"/> <!-- 對應(yīng)配置的scheme+ “://”+host -->
<meta property="al:ios:app_store_id" content="你的應(yīng)用的apple store id"/>
<meta property="al:ios:app_name" content="你的應(yīng)用名稱"/>
<script>
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android終端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
var refer = getQueryVariable("referrer");
// [你的應(yīng)用包名]替換成對應(yīng)的內(nèi)容
if(isAndroid){
location.+refer
} else {
// [你的應(yīng)用的apple store id]替換成對應(yīng)的內(nèi)容
location.href='https://itunes.apple.com/cn/app/amo-rush/id[你的應(yīng)用的apple store id]?l=zh&ls=1&mt=8&referrer='+refer
}
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
</script>
</head>
</html>
這樣我們的點擊分享鏈接跳轉(zhuǎn)商店或是app就完成了。
安卓深度鏈接: https://developer.android.com/training/app-links/deep-linking
ios深度鏈接:https://www.originate.com/thinking/stories/deeplinking-in-ios/
http://www.idev101.com/code/Objective-C/custom_url_schemes.html
