Firebase DynamicLinks
Firebase DynamicLinks是用于用户分享链接,改链接内含有应用所需参数,可通过链接跳转对应应用或网页地址,实现指定页面的分享跳转。
集成准备
1.Firebase添加项目
官方文档地址:https://firebase.google.com/docs/android/setup?authuser=0
具体实现可参考Firebase消息推送文档,需注意的是在注册应用的时候,通常只需配SHA-1签名密钥,如果需要应用链接的分享,需要配置SHA-256
进入应用设置界面入口 SHA-256添加页面2.链接地址配置
动态链接地址入口 短链接网址设置 配置对应短链接即别名 设置链接行为 链接标记界面代码实现
1.根据参数生成长链接
//编辑跳转app所需的Uri参数
deepLinkBuilder.append(DEEP_LINK_HOST)
.append(XMConstant.FIREBASE_TYPE).append("=").append(XMConstant.FIREBASE_LIVE)
.append("&").append(XMConstant.FIREBASE_DEEPLINK_CHANNELID).append("=").append(channelId)
.append("&").append(XMConstant.FIREBASE_SCHEDULEID).append("=").append(scheduleId)
.append("&").append(XMConstant.FIREBASE_FROM_ID).append("=").append(fromId)
.append("&").append(XMConstant.FIREBASE_SIGN).append("=").append(sign);
//编辑跳转网页所需的Uri参数
baseUrlBuilder.append(BASE_OPEN_LIVE_URL)
.append("&").append(XMConstant.FIREBASE_CHANNELID).append("=").append(channelId)
.append("&").append(XMConstant.FIREBASE_SCHEDULEID).append("=").append(scheduleId)
.append("&").append(XMConstant.FIREBASE_FROM_ID).append("=").append(fromId)
.append("&").append(XMConstant.FIREBASE_SIGN).append("=").append(sign)
//指定链接来源
.append("&").append(XMConstant.FIREBASE_FROM).append("=app");
//生成长链接地址
DynamicLink liveDynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(deepLinkBuilder.toString()))
.setDomainUriPrefix(DEEP_LINK_DOMAIN)
.setNavigationInfoParameters(new DynamicLink.NavigationInfoParameters.Builder()
.setForcedRedirectEnabled(true)
.build())
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
.setFallbackUrl(Uri.parse(baseUrlBuilder.toString()))
.build())
.setIosParameters(new DynamicLink.IosParameters.Builder(ISO_PACKAGE)
.setFallbackUrl(Uri.parse(baseUrlBuilder.toString()))
.build())
.setSocialMetaTagParameters(new DynamicLink.SocialMetaTagParameters.Builder()
.setTitle(title)
.setImageUrl(Uri.parse(icon))
.setDescription(description)
.build())
.buildDynamicLink();
//该链接即为生成的长链接地址,可在此处进行校验处理
String longDeeplink = liveDynamicLink.getUri().toString()+Uri.encode("&ofl="+ baseUrlBuilder.toString());
2.缩短长链接
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(Uri.parse(longUrl))
.buildShortDynamicLink()
.addOnCompleteListener(activity, new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
//检测短链接的生成是否成功,成功回调短链接,否则为长链接
if (task.isSuccessful()) {
Uri link = task.getResult().getShortLink();
listener.onSuccess(link.toString());
} else {
listener.onSuccess(longUrl);
}
}
});
功能校验
通过分享到Facebook、Twitter、WhatsApp等三方软件,拿到对应的分享内容链接之后,使用Google浏览器打开,如应用未安装跳转指定网页地址,则功能测试成功,如应用已安装,则需检测是否能成功跳转指定的应用页面。
网友评论