2017-05-18 10 views
1

URLを解析して、React Nativeのクエリ変数を取得する方法を探して、リンクから受信しました。ネイティブ - URLを解析してクエリ変数を取得

のurl-APP-スキーム:

私のようなものとしてURLを受信して​​います// somePage SOMEVAR = someVal

私はURLからSOMEVAR値を取得したいのですが?。

どのような考えですか?

答えて

2

JSエコシステムを活用できる方法があります。これはトリック

1

をお試しください:それはデバッグモードでない限り動作しませんので、これは、上記の質問に対する解決策ではありません。しかし、この回答は削除されませんでした。なぜなら、それはノートの価値のあるニュアンスを指摘していると思うからです。

JavaScript固有のURL Web APIは、React Native(バージョン0.46を使用)でサポートされています。あなたは非常に簡単にURLの任意の部分を解析したり構築したりすることができます。

APIはWHATWG API of the URL module in Node.jsと同じです。この回答は実際にはもっと明白なはずですが、利用可能なパッケージを解析できる大量のURLを紛失してしまいます。

編集:これは何らかの理由でJSデバッグモードでのみ動作し、そうでない場合は動作しません。したがって、このソリューションは有効ではありませんが、ここでは、同じURLモジュールをどのように反応ネイティブで動作させるかを知りたいので、このままにしておきます。

0

更新

var url = "http://example.com?myVar=test&otherVariable=someData&number=123" 
 

 
var regex = /[?&]([^=#]+)=([^&#]*)/g, 
 
    params = {}, 
 
    match; 
 
while (match = regex.exec(url)) { 
 
    params[match[1]] = match[2]; 
 
} 
 
console.log(params)
を行う必要がありますURI.js https://github.com/medialize/URI.js

+0

それは、ブラウザからの代わりに、ネイティブ反応しているので、これはあるかもしれません。それはあまりにも悪いです:( – smaclell

+0

"Remote JS Debugging"を有効にすると、あなたのコードはあなたのデバイスではなくブラウザで実行され、ChromeはV8を使い、RNはJavaScriptCoreを使ってこういう違いを経験します。 https://facebook.github.io/react-native/docs/javascript-environment.html – AlicanC

+0

@AlicanCあなたのコメントでこの動作の背後にある理由を明確にしてくれてありがとう。 – Raunaqss

0

するTry URL https://www.npmjs.com/package/url

「このモジュールには、Node.jsのコアURLモジュールと同等の機能を持つように意図URLの解決や解析のためのユーティリティを持っています。」

ノードのURLオブジェクトは、Chromeの反応ネイティブデバッガを使用するときにアプリで使用できますが、あなたのiPhoneでは使用できません。

ように、サンプルコード

npm install url 

このパッケージを使用します。

import url from 'url'; 

... 

let urlObject = url.parse(inUrlString); 
let outUrlString = urlObject.protocol + '//' + urlObject.host + '/more/jump?jump_path=' + encodeURIComponent(urlObject.pathname); 
関連する問題