我在React Native的Share组件中引用了我的一个道具,一个url(但是以普通对象形式)。我已经尝试了几种不同的方法让Share实际上能够阅读它。没有人工作过。他们应该......任何人都能看到我失踪的东西? 这是代码:
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作为预期的字符串。但Share仍然无法识别它。但是如果我直接从控制台复制字符串并将其硬编码/粘贴到网址中,它就能完美运行。 此代码有效:
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'
}
并且'测试'记录完全如下:
"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
我是网络和移动开发的新手,所以我不能完全确定预期的行为是否要复制'%22'可能是一条突破线。无论如何,ios邮件共享并没有得到任何网址。
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
您正在对字符串执行JSON.stringify
,该字符串将在开头和结尾添加两个引号。
" = %22
这可能是额外%22
代码的原因
onShareButtonPress() {
const { image } = this.props.employee;
Share.share({
message: 'Here\'s your image:',
url: image,
title: 'Dealerslist Image'
}
.
.
.
)
但理想情况下,如果您不想在请求航班期间处理意外字符,则可以尝试encodeURI
和decodeURI
。
const url = "https://google.com"
console.log(url);
console.log(JSON.stringify(url));