我如何共享将在React本机移动应用程序Web浏览器中打开的pdf文件链接或图像链接。我添加了一个共享按钮,但是当用户单击它时,它将在何处共享菜单选项,如WhatsApp,Gmail,邮件等。但是当单击WhatsApp时,它不发送任何内容,为什么?我需要在我的本机android应用中使用Gmail和WhatsApp API
代码:
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)时,该怎么办?我想念什么吗?
答案 0 :(得分:4)
Share.share(内容,选项)分别接收内容和选项参数。
Share.share(content,options)在Android和Android上均返回Promise iOS。您基本上需要解决Promise或阅读响应 从它。
就像
Share.share(
{
message: 'Your message',
url: YourURL
}
).then(({action, activityType}) => {
if(action === Share.sharedAction)
console.log('Share was successful');
else
console.log('Share was dismissed');
});
Promise返回一个包含 action,activityType
的对象如果用户关闭了对话框,则Promise将通过以下方式解决 操作为 Share.dismissedAction ,否则为操作 Share.sharedAction
答案 1 :(得分:1)
您必须履行承诺..
onSharePress = (url) => {
Share.share({
title: 'Alert Title',
message: url + '\nMessage goes here.'
}).then((res) => console.log(res))
.catch((error) => console.log(error))
};
答案 2 :(得分:0)
内容
message
-共享消息
title
-消息标题iOS
url
-要共享的URL至少需要URL和消息之一。
因此,在Android上,url
选项什么也不做,您可能需要将其放入message
。
答案 3 :(得分:0)
喜欢在WhatsApp上共享文本
Linking.openURL(
whatsapp://send?text=${'hello whatsApp'}
);
喜欢在Google上共享文本
Linking.openURL('https://support.google.com/mail/community');
在React Native App中打开您的联系人
Linking.openURL('content://com.android.contacts/contacts');
答案 4 :(得分:0)
这对我有用:Link
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: []
})
}