寻找一种方法在React Native中解析URL以获取从Linking接收到的查询变量。
我接收到的URL类似于:
url-app-scheme://somePage?someVar=someVal
我想从URL中获取someVar的值。
有什么想法吗?
寻找一种方法在React Native中解析URL以获取从Linking接收到的查询变量。
我接收到的URL类似于:
url-app-scheme://somePage?someVar=someVal
我想从URL中获取someVar的值。
有什么想法吗?
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)
JavaScript中有一个URL类,旨在让您能够稳健地构建和解析URL,使查询参数易于访问:
const url = new URL('url-app-scheme://somePage?someVar=someVal');
url.searchParams.get('someVar')
遗憾的是,在React Native中,URL
的实现并不完整且存在一些已知的漏洞。幸运的是,有一个可靠的polyfill库叫做react-native-url-polyfill,它提供了一个行为良好且经过测试的URL
实现 - 我强烈推荐使用它。
new URL(...
时,React Native会显示“未实现”。 - Dee使用查询字符串可以使其正常工作。
yarn add query-string
import queryString from 'query-string';
const parsed = queryString.parseUrl("https://pokeapi.co/api/v2/pokemon?offset=10&limit=10");
console.log(parsed.query.offset) will display 10
尝试使用URL模块https://www.npmjs.com/package/url
"这个模块提供了URL解析和解析工具,旨在与node.js核心的url模块功能相同。"
当使用Chrome react-native调试器时,Node URL对象可用于您的应用程序,但在未连接时无法在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);
url="example.com/path/?id=1"
,我还是无法弄清楚。 - GD- Ganesh Deshmukhconst regex = /[?&]([^=#]+)=([^&#]*)/g;
let params = {},match;
while ((match = regex.exec(url))) {
params[match[1]] = match[2];
}
console.log('parsed params', params);
输出将如下所示
{"auth_token": "175032c6210c32833ac70447c3f049cf9126343af9a9399373ff58e87d06479e845f35b93bc6c234ba37a9dec9", "userId": "1256345", "userType": "95"}
url="example.com/path/?id=1"
let urlObject = url.parse(url, true); // second parameter `true` (parse search query)
console.log(urlObject.query['id']); // 1
更新:这不是上述问题的解决方案,因为它只在调试模式下才有效。但我没有删除此答案,因为我认为它指出了一个值得注意的细微差别。
JavaScript自己的URL Web API在React Native中得到支持(使用版本0.46)。您可以使用它来解析或构建任何和每个URL的任何部分,非常容易。
该API与Node.js中URL模块的WHATWG API完全相同。这个答案应该更加明显,但是由于可用的url解析包数量众多,很容易迷失。
编辑:由于某种原因,这仅在JS调试模式下有效,否则无效。因此,这个解决方案并不真正有效,但我仍然将其保留在这里,因为我想知道如何让相同的URL模块与react-native一起工作。
https://www.jskap.com/blog/React-Native-parse-url-query-params/
。 - GD- Ganesh Deshmukh#
,但在那里它不起作用。 - GD- Ganesh Deshmukhquery-string
会更好。 - AmerllicA