从最新的本机版本0.60开始,默认应用将在着陆页上包含以下链接列表
现在,如果此本机项目在模拟器上运行并且我们单击链接之一,它将在我们的笔记本电脑上打开,而不是在模拟器内从浏览器打开。我想知道它是如何工作的,所以我看了一下node_modules/react-native/Libraries/Core/Devtools/openURLInBrowser.js
并在下面的代码中找到了
'use strict';
const getDevServer = require('./getDevServer');
function openURLInBrowser(url: string) {
// Made a console.log here and getDevServer().url = http://localhost:8081
fetch(getDevServer().url + 'open-url', {
method: 'POST',
body: JSON.stringify({url}),
});
}
module.exports = openURLInBrowser;
尽管拥有此源代码,但我仍然不明白如何使用fetch
库在主机的浏览器中启动url?到目前为止,我只使用fetch
来执行来自某个后端的http请求,但是显然fetch
还提供了更多功能吗?
答案 0 :(得分:0)
Metro捆绑程序正在8081
上运行。 fetch
正在对http://localhost:8081/open-url
执行HTTP POST请求。 Metro能够处理此请求并相应地打开浏览器。
Express Web服务器示例可以像这样处理它:
app.post('/open-url', req => {
const { url } = req.body;
// Handle code to open URL
});