Firebase DynamicLinks集成

Firebase DynamicLinks

Firebase DynamicLinks是用于用戶分享鏈接,改鏈接內含有應用所需參數(shù),可通過鏈接跳轉對應應用或網(wǎng)頁地址,實現(xiàn)指定頁面的分享跳轉。

集成準備

1.Firebase添加項目

官方文檔地址:https://firebase.google.com/docs/android/setup?authuser=0

具體實現(xiàn)可參考Firebase消息推送文檔,需注意的是在注冊應用的時候,通常只需配SHA-1簽名密鑰,如果需要應用鏈接的分享,需要配置SHA-256

進入應用設置界面入口
SHA-256添加頁面

2.鏈接地址配置

動態(tài)鏈接地址入口
短鏈接網(wǎng)址設置
配置對應短鏈接即別名
設置鏈接行為
鏈接標記界面

代碼實現(xiàn)

1.根據(jù)參數(shù)生成長鏈接

//編輯跳轉app所需的Uri參數(shù) 
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);

//編輯跳轉網(wǎng)頁所需的Uri參數(shù)  
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瀏覽器打開,如應用未安裝跳轉指定網(wǎng)頁地址,則功能測試成功,如應用已安裝,則需檢測是否能成功跳轉指定的應用頁面。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容