Unity facebook分享链接跳转app


facebook分享链接跳转app

##技术点分析

1、运用Android的深度链接技术实现。
安卓深度链接: https://developer.android.com/training/app-links/deep-linking
在安卓工程中的AndroidMainfest.xml配置,添加自定义的scheme,需要将intent-filter添加到启动Activity中

    <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>

传递参数获取需要在安卓层编写代码,在启动activity的onCreate中调用如下方法

private void handleIntent(Intent intent) {
    Uri data = intent == null ? null : intent.getData();

    Bundle bundle = AppLinks.getAppLinkData(getIntent());
    String targetUrl = null;
    if (bundle != null){
        targetUrl = bundle.getString("target_url");
        if (targetUrl != null && targetUrl.length() > 0){
            data = Uri.parse(targetUrl);
        }
    }

    if (data != null) {
        // deeplink 链接以此为例:gamedeeplink://app?key1=value1&key2=value2
        // 完整链接
        String url = data.toString();
        // scheme: gamedeeplink
        String scheme = data.getScheme();
        // host: app
        String host = data.getHost();

        Log.i(Tag, "handleDeepLink  handleIntent "+url.toString() +"   "+scheme +"  "+host);

        // Uri 类的详细介绍请参考官方文档:https://developer.android.com/reference/android/net/Uri
    }
}
可以写一个简单的网页测试一下
<html prefix="og: http://ogp.me/ns#">
<body>
    <a href="myapp://test/">test</a>
</body>
</html>

2、通过FaceBook的网页链接跳转技术。

通过官方提供的applink技术实现
官方链接:https://developers.facebook.com/docs/applinks

需要修改网页的代码,这样子在facebook中点击连接时,如果已经安装了应用,则能直接打开应用,未安装时,打开网页并跳转到安装界面,例如谷歌应用商店
```html
<html prefix="og: http://ogp.me/ns#">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta property="og:image" content="显示的图片路径" />
    <!-- <meta property="og:url" content="重定向网页" /> -->
    <meta property="og:type" content="website" />
    <meta property="og:title" content="标题" />
    <meta property="og:description" content="描述" />
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <script>
        function getParamsVariable(){
            var query = window.location.search.substring(1);
            if (query && query.length > 0){
                return query
            }
            return(false)
        }
        //可以编写脚本来进行参数传递
        var paramsStr = getParamsVariable()
        var androidOpenUrl = 'https://play.google.com/store/apps/details?id=appid'
        if (paramsStr) {
            androidOpenUrl = androidOpenUrl + '&' + paramsStr
        }
        //在body的onload方法中调用,页面加载完成后触发
        function startHref(){
            console.log("androidOpenUrl="+androidOpenUrl)
            location.href= androidOpenUrl
        }
    </script>
</head>
<body onload="startHref()">
</body>
</html>

这里会有个问题,在跳转至谷歌商店的安装界面时,是无法传递参数的,解决办法看第三点


3、谷歌广告归因技术实现安装参数传递

    谷歌广告归因技术链接:https://developers.google.com/analytics/devguides/collection/android/v4/campaigns?hl=zh-cn#google-play-url-builder

这个api可以获取从play store下载的来源渠道,这里可以自定义,例如 邀请功能等就很好使用了。
测试的时候,可以上传包到封闭式测试,然后点链接再下载包打开
配合play的地址 添加referrer 字段 例如

连接参数参考下图,该图来自上面的官方链接

referrerUrl=tm_source=googlegogle&utm_medium=cpc&utm_campaign=ad-campainsutm-tern=&utm_content=inviteSource=12334234文章来源地址https://uudwc.com/A/pJGZN


https://play.google.com/store/apps/details?id=com.example.application&referrer=utm_source%3Dgoogle%26utm_medium%3Dcpc%26utm_content%3Dtest%253D123%26anid%3Dadmob

请注意,生成的链接必须使用URL编码来确保正确传递参数。上面示例链接中的"&referrer="参数后面的值使用了URL编码(%3D表示=,%26表示&)。在自己的代码中,也要对参数进行URL编码或解码处理,以确保正确解析参数值.
以下是一个基于JavaScript的函数,用于生成最终的链接:

function generatePlayStoreUrl(params) {
    // 遍历参数对象,将每个参数以key=value形式添加到链接中
    let paramsStr = ''
    for (let key in params) {
      if (params.hasOwnProperty(key)) {
        paramsStr += `${key}=${encodeURIComponent(params[key])}&`;
      }
    }

    // 删除最后一个多余的"&"符号
    playStoreUrl = playStoreUrl.slice(0, -1);
    //把所有的=跟&都换成URL编码
    let encodedString = paramsStr.replace(/=/g, "%3D").replace(/&/g, "%26");
  return encodedString;
}

安卓端也需要配置
Play Install Referrer技术:https://developer.android.google.cn/google/play/installreferrer/library?hl=zh-cn#java

里面的referrerUrl值就是链接中referrer后面的参数

获取输出显示如下图
2023-07-13-invite.png

把安卓端获取到的数据进行解析,就能在安装时进行传参了。


文档参考https://www.jianshu.com/p/c54bd3df2f4e

原文地址:https://blog.csdn.net/qq_29266497/article/details/131835414

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年07月27日 12:35
ARP协议(地址解析协议)
下一篇 2023年07月27日 12:35