0

在我的应用程序中,用户可以与他的朋友分享健身锻炼。所以有不同的用例:

  1. 用户在我们的 App 上与朋友分享(该朋友也使用该 App)。只需选择他的朋友加入他的追随者。所以共享过程是内部的(在 App 和我们的服务器之间)。好的。
  2. 用户通过短信/电子邮件/等方式分享给朋友。该朋友在我们的应用程序上没有帐户。在这种情况下,我们将在从 Google Play 设置应用程序后生成一个引用链接来捕获元素。好的。
  3. 用户也通过短信/电子邮件/等方式与朋友分享。这位朋友在我们的App上有一个账号,并且该App安装在他的手机上。如何从分享链接取回数据?

非常感谢你们的帮助!

4

2 回答 2

0

示例 URL 可以如下所示

https://play.google.com/store/apps/details?id=com.example.application&referrer=utm_source%3Dgoogle%26utm_medium%3Dcpc%26utm_term%3Drunning%252Bshoes%26utm_content%3Dlogolink%26utm_campaign%3Dspring_sale

您可以通过短信或电子邮件(缩短的 URL)发送此 url,或将它们嵌入您的网站。因此,当有人单击 URL 时,它将导航用户到 Play 商店。

要在 utm_referrer、utm_medium、utm_term、utm_content 等 URL 中接收 utm 数据,您必须像以下那样配置应用程序。

  1. 在你的 android manifest 文件中添加 google referrer receiver
 <receiver
            android:name="com.example.application.ReferrerReceiver"
            android:exported="true">
            <intent-filter>
                <action 
               android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
 </receiver>

2 创建一个ReferrerReceiver.java广播接收器类

public class ReferrerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (!intent.getAction().equals("com.android.vending.INSTALL_REFERRER")) {
            return;
        }

        String referrer = intent.getStringExtra("referrer");
        try {
        // This is your data from th URL, you can do any kind of 
        //    manipulation using this.
            referrer = URLDecoder.decode(referrer, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            return;
        }
    }
}
于 2019-10-16T13:18:36.710 回答
0

您的深层链接应该具有查询参数,并且当您收到深层链接时 - 您可以使用getQueryParameter(key)功能获取它们并执行您需要的操作。

例如,您的深层链接是:myCustomScheme://myHost?value=92&title=test

private fun handleDeepLink() {
    val data = intent.data
    val value = data?.getQueryParameter("value")
    val title = data?.getQueryParameter("title")
    if (value == null || title == null) {
        toast(R.string.deep_link_error)
        return
    }
    // do something with your data
}
于 2019-10-16T13:23:14.527 回答