Как я могу поделиться ссылкой на файл pdf или ссылкой на изображение, которая откроется в веб-браузере собственного мобильного приложения. Я добавил кнопку «Поделиться», но когда пользователь нажимает на нее, открывается, где можно поделиться параметрами меню, такими как WhatsApp, Gmail, сообщения и т. д. Но при нажатии на WhatsApp он не отправляет никакого контента, почему так? Нужно ли мне использовать Gmail, WhatsApp API с моим собственным приложением для Android?
код:
import {
Text,
View,
StyleSheet,
Button,
Animated,
Dimensions,
ScrollView,
Image,
TouchableOpacity,
Linking,
Platform,
Share
} from 'react-native';
// inside render
onSharePress = (shareOptions) => Share.share(shareOptions);
const shareOptions = {
title: 'Download Brochure',
url: brochure
}
// inside return
<View style = {{paddingLeft: 10, marginRight: 20, flex: 1, flexDirection: 'row', justifyContent: 'flex-end'}}>
<TouchableOpacity onPress = {() => this.onSharePress(shareOptions)}>
<Icon style = {{paddingLeft: 10}} name = "md-share" size = {25} color = "black"/>
</TouchableOpacity>
</View>
На скриншоте ниже вы можете видеть, что он просто открывает меню параметров общего доступа, но когда я нажимаю на какую-либо платформу, контент, то есть URL-адрес файла, не отправляется, как я могу это сделать? Я что-то упускаю ?
Извините, но я еще не пробовал реагировать на JS.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны выполнить обещание для этого ..
onSharePress = (url) => {
Share.share({
title: 'Alert Title',
message: url + '\nMessage goes here.'
}).then((res) => console.info(res))
.catch((error) => console.info(error))
};
Прочтите дружественные документы share():
Content
message- a message to share
title- title of the messageiOS
url- an URL to shareAt least one of URL and message is required.
Итак, на Android опция url ничего не делает, и вам, вероятно, нужно поместить ее в message.
Share.share(content, options) receives content and options parameter separately.
Share.share(content, options) returns a Promise on both Android and IOS. You basically need to resolve the Promise or read the response from it.
Вот так
Share.share(
{
message: 'Your message',
url: YourURL
}
).then(({action, activityType}) => {
if (action === Share.sharedAction)
console.info('Share was successful');
else
console.info('Share was dismissed');
});
Promise returns an object containing action, activityType
If the user dismissed the dialog, the Promise will be resolved with action being Share.dismissedAction else with action being Share.sharedAction
как поделиться текстом в WhatsApp
Linking.openURL(
whatsapp://send?text=${'hello whatsApp'});
как поделиться текстом в Google
Linking.openURL('https://support.google.com/mail/community');
откройте свой контакт в приложении React Native
Linking.openURL('content://com.android.contacts/contacts');
Это работает для меня: Ссылка
shareApp = () =>{
let text = 'Want more buzz around your photos on Insta, Facebook, Twitter, Whatsapp posts?\n\nLet\'s make your stories get more eyeballs..\nDownload TagWag App '
if (Platform.OS === 'android')
text = text.concat('https://hackeruna.com')
else
text = text.concat('http://itunes.apple.com/app/id1453977874')
Share.share({
subject: 'Download TagWag App Now',
title: 'Download TagWag App Now',
message: text,
url:'app://tagwag',
}, {
// Android only:
dialogTitle: 'Share TagWag App',
// iOS only:
excludedActivityTypes: []
})
}
@harsh Patel Не могли бы вы помочь мне поделиться в React Native? Почему не работает?