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="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/">testa>
body>
html>

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

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

需要修改网页的代码,这样子在facebook中点击连接时,如果已经安装了应用,则能直接打开应用,未安装时,打开网页并跳转到安装界面,例如谷歌应用商店
```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://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

你可能感兴趣的:(unity,游戏引擎)