@li0ard
JS Dev

Как открыть ссылку intent://?

Здравствуйте, как можно открыть ссылку наподобии такой:
intent://qr.nspk.ru/....?type=02&bank=100000000054&sum=9863&cur=RUB&crc=23A2#Intent;scheme=bank100000000004;end


Я пробовал так:
String url = "intent://qr.nspk.ru/....?type=02&bank=100000000054&sum=9863&cur=RUB&crc=23A2#Intent;scheme=bank100000000004;end";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);


Но приложение просто вылетало
  • Вопрос задан
  • 3040 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Araya
Это называется deeplink.
https://www.raywenderlich.com/18330247-deep-links-... - тут подробнее
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988
ссылка для броузера
intent:data_to_print#Intent;scheme=rawbt;package=ru.a402d.rawbtprinter;end;
ссылка из андроид приложения
rawbt:Hello,%20world!%0A%0A

package позволяет отправить в маркет скачивать нужное приложение тех у кого его нет
Ответ написан
Комментировать
@al4i
React Native Для перехода и открытия ссылки выбранным приложением надо динамически подставлять
scheme выбранного банка. Список поддерживаемых банков тут
https://qr.nspk.ru/proxyapp/c2bmembers.json

import React, { useEffect } from 'react';
import { Linking , Platform } from 'react-native';
import SendIntentAndroid from 'react-native-send-intent';

const Screen = ({link}) => {

function changeQRLink(link, scheme, OS) {
if (OS === 'android') {
return link.replace("https://", "intent://").concat(`#Intent;scheme=${scheme};end`)
} else {
return link.replace("https://", `${scheme}://`)
}
}

useEffect(() => {
if (QRLink && Platform.OS === 'android') {
SendIntentAndroid.openChromeIntent(changeQRLink(QRLink?.payRef, schema, Platform.OS))
.then(() => { });
}
if (QRLink && Platform.OS === 'ios') {
Linking.openURL(changeQRLink(QRLink?.payRef, schema, Platform.OS))
}
}, [QRLink])
return (
<>
>
)
}

Для android необходима ссылка формата
intent://qr.nspk.ru/BD1000232GIIH?type=02&bank=100000000008&sum=10&cur=RUB&crc=5675&amp;crc=00C9#Intent;scheme=bank100000000004;end

для ios такой
bank100000000004://qr.nspk.ru/BD10001O9G6?type=02&bank=100000000008&sum=37&cur=RUB&crc=99A2
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы