@kovurado

Как сделать, чтобы при скане qr-кода открывался сайт с предложением скачать приложение?

Нужно сделать так, чтобы при скане кьюар-кода открывался мой сайт, на котором будет написано, чтобы люди скачали приложение.
А если будут сканировать этот же кьюар через мое приложение, все нормально работало и открывалось.
Как это сделать?
  • Вопрос задан
  • 888 просмотров
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
QR код - это просто зашифрованная строка.
Там нет никакой магии.
Исходя из этого, ваш вопрос такой: « Как сделать такую строку, чтобы открывался сайт с предложением скачать приложение?»
Ответ: нужно чтобы в этой строке была ссылка на ваш сайт.
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
QR код содержит просто ссылку.
В манифесте приложения пропишите
<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />

                <data
                    android:host="lknpd.nalog.ru"
                    android:pathPrefix="/api/v1/receipt"
                    android:scheme="https" />
            </intent-filter>


Здесь вы указываете хост и начало урла. Приложение сканер кр кода обращается к операционной системе с вопросом какие программы могут открыть данную ссылку. В список вариантов будет добавлено и ваше.
void handleIntent(Intent intent){
        String action = intent.getAction();
        if (action == null) {
            showMessage("Ошибка вызова. Нет действия в намерении");
            return;
        }

        Uri uri = null;
        if (action.equals(Intent.ACTION_VIEW)) {
            uri = intent.getData();
        }else if (action.equals(Intent.ACTION_SEND) || action.equals(Intent.ACTION_SENDTO)) {
            String stringText = intent.getStringExtra(Intent.EXTRA_TEXT);
            if (stringText == null) {
                CharSequence textSequence = intent.getCharSequenceExtra(Intent.EXTRA_TEXT);
                if (textSequence != null) {
                    stringText = textSequence.toString();
                }
            }
            if (stringText != null) {
                if (stringText.startsWith("http://") || stringText.startsWith("https://")) {
                    uri = Uri.parse(stringText);
                }
            }
        }
        if(uri == null){
            showMessage("Ошибка вызова. Ссылка на чек не обнаружена");
            return;
        }
//теперь самостоятельно разбираете строку урла, чтобы вытащить нужные аргументы для конкретного действия в приложении
        receiptId = ReceiptId.fromURI(uri);
        if(receiptId == null){
            showMessage("Неправильная ссылка на чек");
            return;
        }

        importReceipt();
    }


На Вашем сайте урлы можно через htaccess переправить на заглушку с предложением скачать приложение или к обычной странице добавлять банер с предложением открыть в приложении.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы