點擊Facebook分享鏈接,點擊跳轉(zhuǎn)商店或是app

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

image.png

我們可以通過facebook的分享鏈接調(diào)試工具,進行預(yù)覽。我們所分享的鏈接是什么展示效果。
接下來就是各平臺的配置,驗證測試,和分享頁面格式的例子。

分享網(wǎng)頁是個啥樣子,參考:https://blog.csdn.net/u010479969/article/details/90486576

安卓平臺

  1. 按照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)容,深度鏈接必須勾選打開。

image.png

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


image.png

同樣的這個也是可以隨意自定義的。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容