Глубокие ссылки из URI в других приложениях

У меня возникли проблемы с URI с глубокими ссылками. У меня это работает с myapp://a?parameter=1, но... Моя проблема в том, что этот URL-адрес будет отправлен по SMS, и, например, в приложении Hangouts невозможно щелкнуть по этой ссылке, потому что это не URL-адрес http.

Я не могу изменить URI на http://myapp, потому что вариант для iPhone не поддерживает этот способ. Мне нужен способ щелкнуть myapp:// из других приложений, таких как Hangouts.

Мой код в манифесте:

        <intent-filter android:label="label">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <!-- Accepts URIs that begin with "myapp://a” -->
            <data android:scheme="myapp" android:host="a" />
        </intent-filter>

Есть ли возможность каким-то образом добавить префикс myapp:// в систему Android или сделать ссылку доступной в других приложениях?


person Marc    schedule 25.09.2014    source источник


Ответы (1)


Я не знаю надежного решения для этого, но у меня оно работает с использованием перенаправления на стороне сервера с использованием PHP. Код:

<?php

// Set App deeplink
$app_url = 'fb://profile/33138223345';

// Try to redirect the device to the URL
header('Location: ' . $app_url);

?>

Это просто перенаправит пользователя в приложение Facebook. Таким образом, вы получите URL-адрес HTTP, который будет работать практически везде.

У меня есть этот скрипт онлайн, просто используйте свое устройство и перейдите на эту страницу. Он должен открыть приложение Facebook и перейти на страницу Википедии на iOS и Android.

Самым простым решением было бы использовать службу сокращения URL-адресов и просто получить HTTP-ссылку для глубокой ссылки, но я не смог найти ни одного сокращателя, поддерживающего это.

Надеюсь это поможет!

person Donovan Solms    schedule 17.10.2014
comment
Это помогло, спасибо! Однако идеальный способ работал бы без интернета, но это невозможно. - person Marc; 10.09.2015