ugr*_*sun 6 android ios react-native firebase-dynamic-links
我有 example.com 自定义域,我想通过动态链接邀请成员加入应用程序内的群组。
\n我想使用 app.example.com/ 作为前缀。
\n所有已安装的库、iOS 版 firebase 上的团队 ID 均已定义并使用新的 google services plist 导入。
\n所以我根据自己的愿望准备的网址是这样的(将其构建为短链接 app.example.com/SOMERANDOMTHING)
\nhttps://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\nRun Code Online (Sandbox Code Playgroud)\n在 iOS 上:
\n添加到 info.plist:
\n<key>FirebaseDynamicLinksCustomDomains</key>\n<array>\n <string>https://app.example.com</string>\n</array>\nRun Code Online (Sandbox Code Playgroud)\n还添加applinks:app.example.com到关联域\n并且添加到 URL 方案,添加 com.myorganization.myapp
我在组件上的代码确实安装了:
\n componentDidMount() {\n\n var that = this\n\n dynamicLinks().onLink((link) => {\n\n \n that.handleDynamicLink(link)\n\n\n })\n\n\n if(Platform.OS == 'android')\xc2\xa0{\n\n\n dynamicLinks().getInitialLink().then((link2) => {\n\n if(link2) {\n\n \n\n that.handleDynamicLink(link2)\n\n }\nRun Code Online (Sandbox Code Playgroud)\n问题
\n在安卓上
\n当单击链接从头开始重新打开应用程序时,它调用\ngetInitialLink,onLink 不起作用(这就是为什么我选择平台\n用于 getinitiallink,因为在 ios 上这两个功能都工作)。
\n另外,当点击链接时;没有像“使用 MyApp 打开”这样的选项,因此链接\n不与 MyApp 关联,单击浏览器后\n决定使用 MyApp 打开链接。(好吧,它可以工作,但不酷)
\n如果我将其添加到 AndroidManifest:
\n<data android:host="app.example.com" android:scheme="http"/>\n<data android:host="app.example.com" android:scheme="https"/>\nRun Code Online (Sandbox Code Playgroud)\n这次用我的应用程序打开链接,android 识别出链接\n属于 MyApp,但 getInitialLink 和 onLink 都不起作用。
\n在 iOS 上
\nonLink 可以工作,但它没有将结果传输到应用程序;它只是转移所有链接
\nhttps://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\nRun Code Online (Sandbox Code Playgroud)\n代替
\nhttps://example.com/joingroup?groupid=SOMEGROUPID\nRun Code Online (Sandbox Code Playgroud)\n所以我陷入了这些问题,感谢您的帮助
\n如果您使用一个链接作为另一个链接的参数,则这是可能的。我建议用以下内容替换它
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
Run Code Online (Sandbox Code Playgroud)
如果您使用 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |