Expo SDK 37: обновление до react-native-webview@8.1.1 прервано в функциональности onShouldStartLoadWithRequest для неопределенных глубоких ссылок - PullRequest
0 голосов
/ 21 апреля 2020

Мой оригинальный код работал до обновления до Expo SDK 37 и react-native-webview@8.1.1:

const onShouldStartLoadWithRequest = ({ url }: WebViewNavigation): boolean => {
    const response = parseResponse(url);
    if (shouldProceed(response)) {
        proceed(response);
        return false;
    }
    return response;
};

parseResponse(url: string): Params | boolean {
    const uri = URL.parse(url);
    if (uri.protocol === "deeplinkprotocol:") {
        const query = queryString.parse(uri.search, { decode: false });
        switch (uri.host) {
        case Event.connected:
            return {
                param: query.param,
            };
        default:
            return false;
        }
    }

    return uri.protocol === this.http || uri.protocol === this.https;
}

Перенаправление на URL запроса перестало работать, поскольку onShouldStartLoadWithRequest выдало ошибку.

1 Ответ

0 голосов
/ 21 апреля 2020

Чтобы сделать эту работу после обновления, мне нужно было добавить originWhitelist реквизит к WebView:

<WebView originWhitelist={[ "https://", "deeplinkprotocol://" ]} onShouldStartLoadWithRequest={onShouldStartLoadWithRequest} {...props} />

Надеюсь, это поможет.

...