如何共享将在本机移动应用程序Web浏览器中打开的pdf文件链接或图像链接。我添加了一个分享按钮,但当用户点击它时,它会打开共享WhatsApp,Gmail,消息等菜单选项的位置。但是当点击WhatsApp时它不发送任何内容为什么会这样?我是否需要使用我的本机安卓应用程序中的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未发送,我该怎么办呢?我错过了什么吗?
Share.share(内容,选项)分别接收内容和选项参数。
Share.share(content,options)在Android和IOS上都返回Promise。您基本上需要解析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
你必须为此承诺...
onSharePress = (url) => {
Share.share({
title: 'Alert Title',
message: url + '\nMessage goes here.'
}).then((res) => console.log(res))
.catch((error) => console.log(error))
};
Content
message
- 要分享的信息title
- 消息的标题iOS
url
- 要分享的URL至少需要URL和消息之一。
所以在Android上,url
选项什么都不做,你可能需要将它放入message
。