react-native - 为什么有时 iOS 无法在 React Native 上打开 url 短信
问题描述
我有一个我想了解的问题:为什么我不时收到 Sentry 错误,告诉我 iPhone X 或 XR 无法打开 SMS url?
我有这个错误:无法打开 URL:sms:&body=...
但更奇怪的是,当我查看我的 Sentry 面包屑时,我意识到这个错误似乎发生在用户甚至没有执行必要的操作来打开 SMS 应用程序时!
我发送的短信包含由 Firebase Dynamics Links 生成的 URL。
这是生成短信的url的代码和发送短信的代码
InviteFriends.js
export default inviteFriends = () => {
let sharingToken = store.getState().user.share_token
firebase.dynamicLinks().buildShortLink({
link: `http://mywebsite?type=invite&sharing=${sharingToken}`,
domainUriPrefix: 'https://mylink.page.link',
navigation: {...},
android: {...},
ios: {...}
})
.then((url) => {
sms('', i18n.t('account.addFriends.searchUser.hint.sms', {link: url}))
})
sms.js
const sms = (phone = '', body = '') => {
const sep = Platform.OS === 'ios' ? '&' : '?'
const url = `sms:${phone}${body ? `${sep}body=${encodeURIComponent(body)}` : ''}`
const supported = await Linking.canOpenURL(url)
if (!supported) {
return Promise.reject(new Error('Provided URL can not be handled'))
}
return Linking.openURL(url)
}
我觉得奇怪的是,在我看来,如果不支持打开 SMS 应用程序,我应该会收到一条消息,说“无法处理提供的 URL”。我错了吗 ?
谢谢,
维克多
解决方案
推荐阅读
- python - 显示单个随机数和 Python 数组的总和
- snowflake-cloud-data-platform - 存储过程中批量/批量插入中的参数绑定
- c# - 进入 IHostedService 实现时 DBContext 为空
- python - 如何在自定义包中运行 Python 代码?
- javascript - 使用模型实例获取器通过连接表对 Sequelize 查询进行排序
- c# - 为什么我在长方法中收到 StackOverflow 错误?
- android - 如何防止谷歌云存储重定向
- html - 混合颜色混合在 Safari 中无法正常工作
- python - 如何从通过 JavaScript 加载的页面的 XHR 请求中自动检索请求 URL(对于 python)
- python - SKlearn 中的 OneHotEncoder 是否会删除原始分类列