Как вернуть данные, отправленные с Uri (Реферал / Deep Link)? - PullRequest
0 голосов
/ 16 октября 2019

В моём приложении пользователь может делиться фитнес-тренировкой со своими друзьями. Таким образом, существуют разные варианты использования:

  1. Разделение пользователя с другом в нашем приложении (этот друг тоже использует приложение). Просто выберите его друга в его следующих. Таким образом, процесс обмена является внутренним (между приложением и нашим сервером). OK для этого.
  2. Обмен пользователя с другом с помощью SMS / электронной почты / и т. Д. Этот друг не имеет учетной записи в нашем приложении. В этом случае мы сгенерируем указанную ссылку для отлова элементов после настройки приложения из Google Play. OK для этого.
  3. Пользователь также может делиться с друзьями с помощью SMS / электронной почты и т. Д. У этого друга есть учетная запись в нашем приложении, и приложение установлено на его мобильный телефон. Как я могу получить данные по ссылке общего доступа?

Большое спасибо, ребята, за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Ваша глубокая ссылка должна иметь параметры запроса, а когда вы получите свою глубокую ссылку - вы можете получить их с помощью функции 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
}
0 голосов
/ 16 октября 2019

Пример 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, он перемещается по пользователю, чтобы перейти в магазин воспроизведения.

Чтобы получать данные utm в URL-адресе, такие как utm_referrer, utm_medium, utm_term, utm_content, вам необходимо настроить приложение следующим образом.

  1. Добавьте приемник реферера Google в свой файл манифеста Android
 <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 BroadcastReceiver класс

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;
        }
    }
}
...