Экспо общая ссылка не кликабельна - PullRequest
0 голосов
/ 10 апреля 2020

Я пытался создать механизм для своего приложения Expo, который позволит пользователям обмениваться контентом приложения (поэтому мне, в основном, нужны ссылки с параметрами, и я думаю, что знаю, как это сделать, согласно документам). ).

Я хотел начать создавать этот механизм с простого обмена, без параметров (просто кликабельная ссылка, которая открывает приложение). Вот мой код (выполняется, когда пользователь нажимает кнопку «Поделиться»):

share = async () => {
  await Share.share({
    message: Linking.makeUrl()
  })
}

Он делится ссылкой как исключено (я попробовал это в мессенджере), но общая ссылка не кликабельна. Я также попытался использовать exp://192.168.100.3:190000, который указывает на мой P C в той же локальной сети (я скопировал это из http://localhost:19002/), где работает metro bundler, и копировать туннельную ссылку - ни одна из них не работала, ссылка просто обычная текст, и если пользователь нажимает на него, ничего не происходит. Но когда я сканирую QR-код, из http://localhost:19002/ (страница metro bundler) открывается приложение как исключение.

1 Ответ

0 голосов
/ 12 апреля 2020

Вы делаете все просто отлично!

Причина, по которой в некоторых приложениях нельзя щелкать общую ссылку, заключается просто в механизмах других приложений для «обнаружения» ссылок из простого текста и «связывания». "them.

Видите ли, эти ссылки на самом деле являются" глубокими ссылками "(пользовательские схемы URL).

Вот пример. Если я поделюсь этой ссылкой: exp://192.168.100.3:190000 поверх Slack, она станет «кликабельной», потому что похоже, что у Slack есть механизм для обнаружения этих пользовательских «глубоких ссылок», которые ведут к мобильному приложению:

slack message

Если я использую ту же ссылку через Messanger, она выводится в виде простого текста. Это связано с тем, что Messanger не имеет механизма для обнаружения этих «глубоких ссылок».

messenger message

Чтобы ссылка «кликала», она должен быть представлен в теге привязки. Messenger просто связывает только «известные» веб-ссылки (http://, https:// ...), а не пользовательские.

Считыватель QR-кодов в вашем случае открывает вашу глубокую ссылку, потому что у него есть механизм для обнаруживать «глубокие ссылки».

Итак, если вы хотите надежный способ сделать ваши ссылки всегда «кликабельными», вот обходной путь: раскрутить веб-сайт. Когда люди генерируют (и делятся) ссылки, они делятся веб-ссылками https://your-server. Когда они открывают эти ссылки -> веб-сервер перенаправляет их по схеме exp://... (или по вашему желанию). Если у пользователей установлено ваше приложение - ссылки откроются вместе с вашим приложением.

...