在React Native Expo WebBrowser中监听URL更改

时间:2019-02-17 16:51:05

标签: javascript react-native expo

我想在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代码,可以做到这一点,如果有的话,有人举个例子吗?

1 个答案:

答案 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)