1

我最近从 Firebase 控制台手动创建了一个动态链接。从 Android 设备上的 Firebase 控制台单击短/长链接时,链接工作得很好。

我面临2个问题。当我在这里通过 REST API 创建动态链接时:

  1. 短链接未保存在控制台中。
  2. 无论我如何在清单中配置我的 URL 方案,Android 应用程序都不会打开链接。

我通过 REST 创建动态链接的步骤:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=MY_API_KEY
Content-Type: application/json

{
   "longDynamicLink": "https://r8prz.app.goo.gl/?link=http://www.socialTanya.co.il/group/groupId&apn=com.ssa.socialtanya&ibi=com.ssa.socialtanya"
}

回复:

{
"shortLink": "https://r8prz.app.goo.gl/J4qcykV9ol7X3Rh33",
"previewLink": "https://r8prz.app.goo.gl/?link=http://www.socialTanya.co.il/group/itzhar&apn=com.ssa.socialtanya&ibi=com.ssa.socialtanya&d=1"
}

单击 时https://r8prz.app.goo.gl/J4qcykV9ol7X3Rh33,我看到加载对话框几秒钟,然后浏览器打开并显示“找不到页面”错误。

清单.xml:

<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:host="www.socialTanya.co.il"
           android:pathPrefix="/group/"
           android:scheme="http"/>

       <data
           android:host="www.socialTanya.co.il"
           android:pathPrefix="/group/"
           android:scheme="https"/>

</intent-filter>

来自控制台的工作链接:

  1. https://r8prz.app.goo.gl/qL6j
  2. https://r8prz.app.goo.gl/?link=http://www.socialTanya.co.il/group&apn=com.ssa.socialtanya&sd=%D7%94%D7%A6%D7%98%D7%A8%D7%A3+%D7%9C%D7%9C%D7%99%D7%9E%D7%95%D7%93+%D7%AA%D7%A0%D7%99%D7%90+%D7%9E%D7%A9%D7%95%D7%AA%D7%A3
4

1 回答 1

2

好的,过了一会儿,我发现了问题,这完全是 JAVA 问题:

当我从 android 发送动态链接时,我将一些文本链接到String.format()

String shareLink = String.format("%s - %s\n%s","to join group","GROUP_NAME","https://r8prz.app.goo.gl/J4qcykV9ol7X3Rh33");

我的链接断开了,因为上面的破折号字符:

在此处输入图像描述

在此处输入图像描述

当我从手机点击链接时,我注意到基本网址更改为:

https://r8prz.app-alt.goo.gl

app-alt 在此处输入图像描述 我的猜测是当动态链接 id 不存在时,基本 url 变为app-alt

所以我的解决方案是,用自定义字符串“Handmade”链接共享链接:

String shareLink = "to join group" + "GROUP_NAME" + "https://r8prz.app.goo.gl/J4qcykV9ol7X3Rh33";
于 2017-01-19T08:56:31.843 回答