在 React Native Expo WebBrowser 中监听 url 变化
Posted
技术标签:
【中文标题】在 React Native Expo WebBrowser 中监听 url 变化【英文标题】:Listening for url change in React Native Expo WebBrowser 【发布时间】:2019-02-17 16:51:04 【问题描述】:我想在 React native expo 中打开一个加载 url 的网络浏览器,然后我想监听一个特定的 URL 被点击,此时我希望它运行一些代码然后关闭浏览器窗口.
我一直在尝试为此使用 Expo 的 WebBrowser。
https://docs.expo.io/versions/latest/sdk/webbrowser/
async componentDidMount()
Linking.addEventListener("url", this.handleOpenURL);
handleOpenURL(event)
console.log(event.url);
// do something here then dismiss the browser
...进一步向下的代码我有这个按钮按下
let result = await WebBrowser.openBrowserAsync('www.exampleurl.com');
这会打开网页,但不会点击 handleOpenUrl 代码,可以这样做吗?如果可以,有人有例子吗?
【问题讨论】:
【参考方案1】:您的 handleOpenURL 函数只会在有人打开重定向到您的应用的 url 时运行,它不会监控 WebBrowser 的会话。
如果您可以控制后端,那么您可以使用重定向链接和AuthSession
by exco 给定。您可以执行以下操作:
import AuthSession from 'expo';
let authResult = await AuthSession.startAsync(
authUrl: `https://myserverurl.com/?` +
`redirect_uri=$encodeURIComponent(redirectUrl)`
);
// This part will run after browsing session is over
console.log(authResult)
【讨论】:
以上是关于在 React Native Expo WebBrowser 中监听 url 变化的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 react-native-svg 或 Svg/expo 让 Svg 显示在 react-native 中
在 expo 中运行使用 react-native-cli 创建的 react-native 应用程序
react-native-permissions 在 react-native expo 项目中返回 RNPermissions null