我想在React native expo中打开一个Web浏览器并加载一个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代码,可以做到这一点,如果有的话,有人举个例子吗?
答案 0 :(得分:0)
您的handleOpenURL函数仅在有人打开重定向到您的应用程序的URL时运行,它不监视WebBrowser的会话。
如果您可以控制后端,则可以使用重定向链接和exco的AuthSession
。您可以执行以下操作:
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)