2017-12-09 11 views
0

React Nativeの共有コンポーネントで、私の小道具の1つ、URL(単純なオブジェクト形式)を参照しています。私は実際にそれを読むことができる共有を得るためにいくつかの異なる方法を試してみました。誰も働いていない。そして、彼らは....私は行方不明を誰も参照する必要がありますか?
ここでは、コードです:React Native 'Share'関数で動的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を取得します。しかし、Shareはまだそれを認識できません。しかし、コンソールから文字列を直接コピーし、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' 

}

そして、 '試験' のログ正確に同じ:

"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のメール共有はURLのいずれも取得していません。

助けていただけたら幸いです!ありがとう!

+0

どれ理由 'JSON.stringify'?それを削除してみてください。 –

答えて

1

文字列にJSON.stringifyをつけています。最初と最後に2つの引用符が追加されます。

" = %22おそらく余分%22コード

onShareButtonPress() { 
    const { image } = this.props.employee; 
    Share.share({ 
     message: 'Here\'s your image:', 
     url: image, 
     title: 'Dealerslist Image' 
    } 
    . 
    . 
    . 
) 

の理由である。しかし、あなたが要求飛行中に予期しない文字に対処する必要はありません場合は、理想的にあなたがencodeURIdecodeURIを試してみたいと思います。

URL ENCODING LIST

ENCODE URI

DECODE URI

const url = "https://google.com" 
 

 
console.log(url); 
 

 
console.log(JSON.stringify(url));

+0

ありがとうナンドゥ!それはうまくいった。私は早くそれを試していたが、何か他のものが間違っていたにちがいない。ちょうどイメージがうまくいかなかった。感謝万円! –

関連する問題