我尝试添加一个按钮,以便从用户的邮件提供商发送电子邮件,如下所示
_OnPressMailto(emails){
console.log(emails[0].email)
const address = emails[0].email
Linking.openURL('mailto:address');
}
Linking.openURL
在我的其他fb和twitter链接上工作得很好。但是mailto返回一个未处理的error=>承诺。
一个想法?
发布于 2017-12-24 22:40:47
从react原生docs
openURL()
返回Promise对象。如果用户确认打开的对话框或url自动打开,则promise将被解析。如果用户取消打开的对话框或没有已注册的url应用程序,则该承诺将被拒绝。
注意:如果系统不知道如何打开指定的URL,此方法将失败。
您可能应该使用canOpenURL来确定已安装的应用程序是否可以处理给定的URL,或者至少处理返回的promise拒绝。
发布于 2017-12-25 03:43:51
使用https://github.com/anarchicknight/react-native-communications这是一个打开不同urls的简单包
发布于 2017-12-25 08:49:45
您没有正确地将address
与mailto
连接起来。使用+运算符或模板,如下所示Linking.openURL(`mailto:${address}`)
。
_onMailto(emails) {
console.log(emails[0].email);
const address = emails[0].email;
this.launchURL(`mailto:${address}`);
}
launchURL(url) {
Linking.canOpenURL(url).then(supported => {
if(!supported) {
console.log('Can\'t handle url: ' + url);
} else {
Linking.openURL(url)
.catch(err => {
console.warn('openURL error', err);
});
}
}).catch(err => console.warn('An unexpected error happened', err));
}
https://stackoverflow.com/questions/47964333
复制