【发布时间】:2019-11-04 21:06:20
【问题描述】:
我想在我的应用程序中设置一个推荐系统,以便用户可以通过电子邮件/电话号码等(以最简单的方式)邀请他们的朋友,当确认被邀请者已安装应用程序时,它将奖励原始邀请发件人,例如一个月没有横幅广告。
我能在网上找到的唯一参考是这个:https://pub.dev/packages/firebase_dynamic_links#-readme-tab-
我不确定这是否是我所追求的,不幸的是,因为它是由 Flutter 团队设置的,它提供了关于如何实际实现其中任何一个的确切 0 解释,因为他们有点希望你已经是专业的全职程序员,可以自己填空。
这是我所追求的正确插件吗?有没有更好的资源?
编辑
沿着 Firebase 动态链接路径前进。我遇到的第一个障碍是它要求我拥有一个域,我可以在其中创建动态链接的 URL。所以我昨晚注册了一个域并按照 Firebase 的要求进行设置,以对其进行验证并连接到Firebase 项目(它会引导您完成此过程,一切似乎都运行良好,只是可能需要给您的 DNS 主机时间来反映此过程所需的 TXT 和 A 记录更改)。
所以现在我有一个名为 example.com 的经过验证的空白域
现在在 Firebase 中,在我创建的项目下,左侧下方是一个名为 Dynamic Links 的按钮。这将要求 example.com 通过您之前输入的 A 记录进行验证,但一旦验证,您就可以创建新的动态链接。
这里有5个步骤:
第 1 步)它会为您建议一个简短的 URL 链接。就我而言:example.com/gd7W。我接受了这个并点击下一步。
第 2 步)设置您的动态链接。它要求提供深层链接 URL 和动态链接名称。在我的例子中,我使用了 example.com/apps/refer_a_friend,你可以给动态链接起任何你喜欢的名字。我刚刚称我的“推荐朋友促销”。点击下一步。
步骤 3) 定义 iOS 的链接行为。我只是将其保留为“在浏览器中打开深层链接”
步骤 4) 为 Android 定义链接行为。我只是将其保留为“在浏览器中打开深层链接”
第 5 步)活动跟踪、社交标签和高级选项。在这个阶段,这些东西似乎并不重要,而不是为了这篇文章需要的东西,这只是让事情开始运作。这些东西用于分析和跟踪您的促销活动。您可以稍后再回来编辑。
所以在第 2 步中,我引用的深层链接 URL 实际上并不存在。我不确定是否应该这样做。如果我打算在我的网站上创建这个页面,但是如果是这样,我应该在这个页面上放什么?我目前的想法是,我应该在我的网站上创建一个重定向,从这个地址到应用程序的 google play 商店的 URL。我已经尝试过了,但它没有重定向。
接下来,再次回到示例应用程序(这里我指的是我们在下面的 cmets 中处理的示例,来自这里:https://github.com/flutter/plugins/tree/master/packages/firebase_dynamic_links/example)。
我认为这部分是我们需要查看的内容,因为它需要编辑以适合您之前步骤中的链接和地址:
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://cx4k7.app.goo.gl',
link: Uri.parse('https://dynamic.link.example/helloworld'),
androidParameters: AndroidParameters(
packageName: 'io.flutter.plugins.firebasedynamiclinksexample',
minimumVersion: 0,
),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
),
iosParameters: IosParameters(
bundleId: 'com.google.FirebaseCppDynamicLinksTestApp.dev',
minimumVersion: '0',
),
);
我更改了这部分代码以尝试匹配我上面的工作,因此更新为:
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://example.com/gd7W',
link: Uri.parse('https://example.com/apps/refer_a_friend'),
androidParameters: AndroidParameters(
packageName: 'company01.appname', //The appID of my app on the store
minimumVersion: 0,
),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
),
iosParameters: IosParameters(
bundleId: 'company01.appname', //The appID of my app on the store
minimumVersion: '0',
),
);
当我运行应用程序并单击获取短链接按钮时,日志中出现以下错误:
PlatformException(short_link_error, 400: Your project does not own Dynamic Links domain: https://example.com
我不确定这是正确的错误,因为在 Firebase 控制台中,此域已验证并且当前已连接。它似乎工作正常。我想知道真正的问题是否是我的深层链接此时并没有真正做任何事情,正如我所提到的,我并不完全确定它应该做什么。
编辑 2
补充一点,当我单击“获取长链接”按钮时,它实际上似乎返回了一些内容,一个极长的 URL,如下所示:
https://example.com/gd7W?amv=0&apn=company01.appname&ibi=company01.appname&imv=0&link=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcompany01.appname%26hl%3Den
这似乎是我在不同点指定的所有组件,但可能不正确。不过,这看起来像是一种进步!
编辑 3
我已经浏览了我能找到的每一个例子。没有人告诉我动态链接 URL 应该是什么、如何制作、它应该指向的位置或如何处理它。这似乎是让这项工作发挥作用的缺失环节。
我还可以尝试进行哪些其他设置?
编辑 4
我知道很多人都在阅读这个帖子,所以我很乐意为大家提供一个可行的示例。我没有得到足够的帮助,所以我从来没有得到它的工作。我必须从我的应用程序中完全删除推荐,这样我才能赶上截止日期。
【问题讨论】:
-
那么,您最后找到推荐计划的解决方案了吗?
-
我没有交配,最后放弃了。根本没有在我的应用程序中实现这一点,而且一年多来根本没有工作过。
-
我找到了最简单的解决方案并实施并运行良好.....我已将其发布为答案。用测试用例。
标签: flutter firebase-dynamic-links referrals