Unity facebook分享链接跳转app


facebook分享链接跳转app

##技术点分析

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

    <activityandroid: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: gamedeeplinkString scheme = data.getScheme();// host: appString 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://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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL AND OR 运算符

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 如果第一个条件和第二个条件都成立&#xff0c;则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立&#xff0c;则 OR 运算符显示一条记录。 下面是选自 "students" 表的数据&a…

java 支持jsonschema

入参校验产品化 schema_xsd可视化编辑器_个人渣记录仅为自己搜索用的博客-CSDN博客 jsonchema的生成 支持v4的jackson-jsonSchema GitHub - mbknor/mbknor-jackson-jsonSchema: Generate JSON Schema with Polymorphism using Jackson annotations jackson-module-jsonSchema …

yolov5 C++推理(libtorch和onnxruntime框架)

libtorch推理 #include <iostream> #include <algorithm> #include <opencv2/opencv.hpp> #include <torch/script.h> #include <torch/torch.h>std::vector<torch::Tensor> non_max_suppression(torch::Tensor preds, float score_thres…

网络专线如何改成SDWAN?

将网络专线改成SDWAN涉及一系列步骤和决策。下面是一个概括的指南&#xff0c;帮助您了解如何将网络专线迁移到SDWAN。 1.需求分析&#xff1a;首先&#xff0c;您需要对现有网络专线的性能、需求和限制进行全面分析。了解各个分支机构的带宽需求、网络延迟、丢包率以及关键应…

阿里云NVIDIA A100 GPU云服务器性能详解及租用费用

阿里云GPU服务器租用费用表包括包年包月、一个小时收费以及学生GPU服务器租用费用&#xff0c;阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡&#xff0c;GPU云服务器gn6i可享受3折&#xff0c;阿里云百科分享阿里云GPU服务器租用表、GPU一个小时多少…

各种知名游戏的技术分析

介绍一个GitHub&#xff0c;里面包括了市面上的各种游戏的技术分析&#xff0c;包括渲染管线、工作流、技术文章等等&#xff0c;在做某个类型的游戏的时候&#xff0c;可以针对某个游戏去进行技术参考&#xff0c;特别实用。 GitHub - OTFCG/Awesome-Game-Analysis: a compre…

C++那些事之template disambiguator

template disambiguator 1.背景 最近看到一段代码&#xff1a; auto chunk_left first_sort_key.template GetChunk<ArrayType>(left); 请问&#xff0c;这里的.template代表什么意义&#xff1f; 本节将从实际例子出发&#xff0c;探讨这个意义。 2.template disambigu…

数仓学习---16、可视化报表(Superset)

星光下的赶路人star的个人主页 真正的才智是刚毅的志向 文章目录 1、Superset入门1.1 Superset概述1.2 环境说明 2、Superset安装2.1 安装Python环境2.1.1 安装Miniconda2.1.2 创建Python3.7 环境 2.2 Superset部署2.2.1 安装依赖2.2.2 安装Superset2.2.3 启动Superset2.2.4 Su…

【ARM Coresight 系列文章 10.2 - ARM Coresight STM Trace packets】

文章目录 Trace protocolpacket的种类Error packetsVERSION Packets同步 packet 上篇文章&#xff1a;ARM Coresight 系列文章 10.1 - ARM Coresight STM 介绍及使用 下篇文章&#xff1a;ARM Coresight 系列文章 10.3 - ARM Coresight STM 寄存器介绍 及STM DMA 传输介绍 Trac…

WPF实战学习笔记13-创建注册登录接口

创建注册登录接口 添加文件 创建文件 MyToDo.Api ​ ./Controllers/LoginController.cs ​ ./Service/ILoginService.cs ​ ./Service/LoginService.cs MyToDo.Share ./Dtos/UserDto.cs LoginController.cs using Microsoft.AspNetCore.Mvc; using MyToDo.Api.Context;…

vue-pdf 单列显示多个pdf页面

<template><div><pdfv-for"i in numPages":key"i":src"src":page"i"style"display: inline-block; width: 100%"></pdf> <!-- 宽度设置100% 一行只展示一页 --></div> </template&g…

【uni-app2.0】实现登录页记住密码功能

使用uni-app的uni.setStorageSync()和uni.getStorageSync()方法来存储和读取密码 在登录页中添加一个记住密码的u-checkbox选项&#xff0c;并在data里面添加一个rememberPwd的布尔值&#xff0c;在每次点击记住密码change的时候来记录用户的选择 <u-checkbox-group place…

基于java的坦克大战游戏的设计与实现--毕业论文--【毕业论文】

文章目录 本系列校训毕设的技术铺垫文章主体层次摘要&#xff1a;示例摘要的写法 引言&#xff1a;系统分析总体设计总体功能总体功能如图1所示坦克大战总体流程图 详细设计游戏测试结论参考文献参考文献 配套资源 本系列校训 互相伤害互相卷&#xff0c;玩命学习要你管&#…

Linux磁盘管理命令

目录 1. du (disk usage文件和目录占用的磁盘空间) 2. df (disk free 查看磁盘使用情况) 3. lsblk(list block查看块设备挂载情况) 1. du (disk usage文件和目录占用的磁盘空间) du [-ahskm] 目录/文件&#xff08;文件大小可以直接使用ll查看&#xff09; 选项与参数&a…

(八九)如何与InfluxDB交互InfluxDB HTTP API

以下内容来自 尚硅谷&#xff0c;写这一系列的文章&#xff0c;主要是为了方便后续自己的查看&#xff0c;不用带着个PDF找来找去的&#xff0c;太麻烦&#xff01; 第 8 章 前言&#xff1a;如何与InfluxDB交互 1、InfluxDB启动后&#xff0c;会向外提供一套HTTP API。外部程…

正则表达式-速成教程

正则表达式-速成教程 今天遇到一枚程序媛在群里吐槽&#xff0c;并附了截图&#xff1b;然后无意中看到她的一个正则与她的注释描述不一致&#xff0c;就提醒了一下。顺带着给了个速成教程&#xff0c;在这里把这个速成教程贴出来&#xff0c;一是为了自己备份&#xff1b;二是…

QT【day1】

登录框&#xff1a; #include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//窗口设置this->setFixedSize(600,600); //大小this->setWindowTitle("MUMU"); //文本内容this->setWindowOpacity(0.8); //透…

力扣 -- 978. 最长湍流子数组

一、题目 二、解题步骤 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 三、参考代码 class Solution { public:int maxTurbulenceSize(vector<int>& nums) {int nnums.size();vector<int> f(n);…

k8s中强制删除pv

K8s 集群内有一个已经不再使用的 PV&#xff0c;虽然已经删除了与其关联的 Pod 及 PVC&#xff0c;并对其执行了删除命令&#xff0c;但仍无法正常删除&#xff0c;一直处于 Terminating 状态&#xff1a; 解决办法&#xff1a; 1. 获取pv信息 kubectl get pv 2. 解除pv锁定 …

对话商汤王晓刚:“百模大战”下半场,如何才能突出重围?

点击关注 文 | 姚悦 今年最早发布的那批大模型&#xff0c;现在怎么样了&#xff1f; 近期&#xff0c;商汤科技宣布“商汤日日新SenseNova”大模型体系完成了第一次重大迭代。这距离其发布过去3个月时间。 “每天不断接到用户调用&#xff0c;收到建议反馈后&#xff0c;每隔…