配置分享链接参数
链接中加入um_from_appkey可以区分分享平台,再加上页面id、分享人id等
友盟控制台配置ULink
打开友盟ULink模块,打开分析裂变营销创建活动
- App跳转path为app内收到可以看到哪个页面分享的
- App页面传参和首次安装传参都是固定参数,就是链接里不用配置app就可以拿到的参数。
- 页面原始链接为分享链接。
打开设置Deeplink配置 - 配置Android和iOS设置
- 注意:使用Scheme方式跳转的,Universal Link不要写,写了网页JS会默认Universal Link跳转,我是使用了Scheme
JS配置
Vue
注意在文件目录public下打开index,添加
<script src="https://g.alicdn.com/jssdk/u-link/index.min.js"></script>
mounted() {
const ULink =window.ULink
const url = (window.location.href ||'').split('?')[1]
const data = ULink.getUriParams(url)
ULink([{
id: '****', // 后台生成的裂变活动LinkID
data: data,
selector: '#downbtn', // id名字,需要与页面内跳转按钮的id一致
auto: false, // 含义见下文,
lazy: false,
useOpenInBrowerTips: 'default', // 在微信等内打开会提示去浏览器
proxyOpenDownload(defaultAction, LinkInstance) {
if (LinkInstance.solution.type === 'scheme') {
if (ULink.isWechat || ULink.isQQ) {
defaultAction()
} else {
window.location.href = LinkInstance.solution.downloadUrl
}
}
}
}])
},
html
<script src="https://g.alicdn.com/jssdk/u-link/index.min.js"></script>
<script>
const ULink =window.ULink;
const url = (window.location.href ||'').split('?')[1];
const data = ULink.getUriParams(url);
ULink([{
id:"****",// 后台生成的裂变活动LinkID
data:data,
selector:"#downbtn",//按钮的名称,与页面内跳转按钮id一致
// 可选高级功能,具体含义请看下方U-Link API文档
auto:false,
timeout:2000,
lazy:false,
useOpenInBrowerTips: 'default', // 在微信等内打开会提示去浏览器
proxyOpenDownload(defaultAction, LinkInstance) {
if (LinkInstance.solution.type === 'scheme') {
if (ULink.isWechat || ULink.isQQ) {
defaultAction()
} else {
window.location.href = LinkInstance.solution.downloadUrl
}
}
},
}]);
</script>
App内
首次安装
最好做个开关,安装后只调用一次即可
func getUMInstall(){
MobClickLink.getInstallParams { params, url, error in
///params就是友盟后台配置好的首次安装参数、url为webpageurl包含了scheme加链接,这里写MobClickLink.handle(url, delegate: vc)会把拿到的链接转到delegate的vc里去实现,vc里拿到的参数与这里不同,所以看自己的需求需要拿哪些参数,如果分享人id或者页面id这种可变的参数,就转到vc去拿(当然也可以从url里拆出来),如果是定死的首次安装参数就在这里params拿。
}
}
MobClickLinkDelegate
func getLinkPath(_ path: String!, params: [AnyHashable : Any]!) {
///这里path为裂变营销配置的App跳转path,比如path设置为qadetail问答详情,就知道要跳QADetailController,params为分享链接里的所有参数,包含userId、问答详情id等
}
通过分享页点击跳转到App指定页面
///scheme使用
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
///获取到当前的vc,最好是放在首页,与上面MobClickLinkDelegate的实现一样,因为首页是常驻的页面,必然可以收到消息然后获取当前页面的navigationController进行跳转,比如我在个人中心的设置页,首页收到代理的方法实现,然后拿到当前设置页的navigationController进行跳转。
MobClickLink.handle(url, delegate: vc)
}
///universal link使用
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
MobClickLink.handleUniversalLink(userActivity, delegate:vc)
}