我在React Native的共享部分中引用了我的一个道具,即一个URL(但以普通对象形式)。我已经尝试了几种不同的方法来分享实际能够阅读它。没有人工作。他们应该....有人看到我缺少的东西吗?
这是代码:
onShareButtonPress() {
const { image } = this.props.employee;
const test = JSON.stringify(image);
//console.log(test);
Share.share({
message: 'Here's your image:',
url: test,
title: 'Dealerslist Image'
}, {
// Android only:
dialogTitle: 'Share Dealerslist goodness',
// iOS only:
excludedActivityTypes: [
'com.apple.UIKit.activity.PostToTwitter'
]
})
这也不起来:
url: 'image',
如果我记录"测试",则将URL作为预期字符串。但是分享仍然无法识别。但是,如果我直接从控制台中复制字符串并将其粘贴到URL中,则可以很好地工作。此代码有效:
Share.share({
message: 'Here's your image:',
url: "https://firebasestorage.googleapis.com/v0/b/ag-equipment-
southwest.appspot.com/o/1512760876838.4595.jpg?
alt=media&token=1bfeba0d-d788-4774-91a7-7801c8084b30",
title: 'Dealerslist Image'
}
和'test'日志完全如下:
"https://firebasestorage.googleapis.com/v0/b/ag-equipment-
southwest.appspot.com/o/1512760876838.4595.jpg?
alt=media&token=1bfeba0d-d788-4774-91a7-7801c8084b30"
所有这些我都尝试分享iOS邮件。动态链接无法与邮件一起使用。
但是,如果我只是在iOS剪贴板上共享,我得到了:
Here's your image:%22https://firebasestorage....and so on
我是Web和移动开发的新手,因此我不确定预期的行为是否将"%22"复制为可能的中断。无论如何,iOS邮件共享没有获得任何URL。
任何帮助将不胜感激!谢谢!
您正在在字符串上进行JSON.stringify
,该字符串将在开始和结束时添加两个引号。
" = %22
可能是额外%22
代码
onShareButtonPress() {
const { image } = this.props.employee;
Share.share({
message: 'Here's your image:',
url: image,
title: 'Dealerslist Image'
}
.
.
.
)
,但理想情况下,如果您不想在请求飞行期间处理意外角色,则需要尝试encodeURI
和decodeURI
。
URL编码列表
编码URI
解码URI
const url = "https://google.com"
console.log(url);
console.log(JSON.stringify(url));