繁体   English   中英

Firebase 动态链接在自定义域中无法正常工作

[英]Firebase dynamic link not working as expected with custom domain

我有 example.com 自定义域,我想通过动态链接邀请成员加入应用程序内的组。

我想使用 app.example.com/ 作为前缀。

已安装所有库,firebase 上的团队 ID 为 ios 定义并使用新的谷歌服务 plist 导入。

所以我的 url 我准备满足我的愿望是这样的(将其构建为短链接 app.example.com/SOMERANDOMTHING)

https://app.example.com/?link=https://example.com/joingroup?groupid=SOMEGROUPID&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp

在 iOS 上:

添加到 info.plist:

<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://app.example.com</string>
</array>

还添加了applinks:app.example.com到关联域和 URL 方案,添加了 com.myorganization.myapp

我在组件上的代码确实挂载了:

    componentDidMount() {

     var that = this

    dynamicLinks().onLink((link) => {

        
        that.handleDynamicLink(link)


    })


    if(Platform.OS == 'android') {


    dynamicLinks().getInitialLink().then((link2) => {

        if(link2) {

            

            that.handleDynamicLink(link2)

        }

问题

在 Android

  1. 当单击链接从开始重新打开应用程序并调用 getInitialLink 时,onLink 不起作用(这就是为什么我选择 getinitiallink 平台的原因,因为在 ios 上这两个功能都可以工作)。

  2. 当点击链接时; 没有像“使用 MyApp 打开”这样的选项,因此链接不与 MyApp 关联,在单击浏览器后决定使用 MyApp 打开链接。 (好的,它有效但不酷)

  3. 如果我将此添加到 AndroidManifest:

     <data android:host="app.example.com" android:scheme="http"/> <data android:host="app.example.com" android:scheme="https"/>

    这次链接打开我的应用程序和 android 识别链接属于 MyApp 但 getInitialLink 和 onLink 都不起作用。

在 iOS

onLink 有效,但没有将结果传输到应用程序; 它只是转移所有链接

https://app.example.com/?link=https://example.com/joingroup?groupid=SOMEGROUPID&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp

代替

https://example.com/joingroup?groupid=SOMEGROUPID

所以我坚持这些问题,谢谢你的帮助

如果您使用一个链接作为另一个链接的参数,这是可能的。 我建议用以下内容替换它

https://app.example.com/?link=https%3A%2F%2Fexample.com%2Fjoingroup%3Fgroupid%3DSOMEGROUPID&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp

如果使用 JavaScript 手动创建链接,可以使用encodeURIComponent

const link = encodeURIComponent('https://example.com/joingroup?groupid=SOMEGROUPID');
const url = `https://app.example.com/?link=${link}&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp`;
console.log(url)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM