React native ссылка на другое приложение
Я пытаюсь связать с другим приложением из моего родного приложения react (например, Google maps).
мне нужен модуль связывания, как написано здесь:https://facebook.github.io/react-native/docs/linking.html
мой код содержит простую кнопку, которая должна открыть навигационное приложение и передать некоторое местоположение как свойства:
<TouchableOpacity
onPress={ () =>{
Linking.openURL("http://maps.google.com/maps=daddr=Wien")
.catch(err => console.error('An error occurred', err)); }}
>
<Text>Navigate</Text>
</TouchableOpacity>
при загрузке представления я не получаю ошибок, которые подразумевают, что требуется модуль работал штраф.
при нажатии кнопки я получаю следующее сообщение об ошибке:
undefined is not an object (evaluating '_reactNative.Linking.openURL')
я следовал этим шагам:https://facebook.github.io/react-native/docs/linking-libraries-ios.html и установлен npm install link --save
1 ответов
не нужно npm install link --save
или "связывание библиотек в iOS" руководство. В "<Linking />
компонент" и "связывающее действие librairies" - это две совершенно разные вещи.
<Linking />
- это компонент, который позволяет открывать ссылки (веб-адреса или ссылки на другие приложения) и определять, когда ваше приложение вызывается из ссылки (например, из браузера или другого приложения или push-уведомления). Это основной компонент React Native и поставляется с react-собственный пакет npm.
связывание librairies необходим при установке сторонней библиотеки (например,реагировать родной-карты например), и вам нужно добавить зависимости в конфигурации сборки iOS Xcode и Android Gradle. Обычно это делается с помощью , после npm install
его.
единственное, что вы должны do требуется или импортировать <Linking />
в вашем файле javascript перед его использованием. Вы не даже нужна вся часть о обработка глубоких ссылок из документации. Это только для входящих ссылок, которые открывают ваше приложение. Все, что вам нужно начинается с открытие внешних ссылок
теперь, почему ваш код не является тайной. Вот ссылка на рабочее приложение, которое имеет точно такое же поведение. Краткий пример:
import React from 'react';
import { TouchableOpacity, Linking, Text } from 'react-native';
export default function Button() {
return (
<TouchableOpacity onPress={() => Linking.openURL('https://maps.google.com?q=stack+overflow+offices')}>
<Text>Press me</Text>
</TouchableOpacity>
);
}
вы также можете проверить его здесь rnplay.
Я предлагаю очистить ваш проект, удаление папки папки node_modules и делаю npm install
снова и компиляция вашего проекта new.