webview onNavigationStateChange返回上一页的url

时间:2018-05-02 01:58:57

标签: react-native

在webview中当我导航到某个页面时,本地反应是onNavigationStateChange返回上一页的网址吗?我认为这是一个问题,并将其发布给github反应原生问题。

export class Util {
    static encodeByteArray(bytes: string) {
        const byteCharacters = atob(bytes);
        const byteNumbers = new Array(byteCharacters.length);
        for (let i = 0; i < byteCharacters.length; i++) {
            byteNumbers[i] = byteCharacters.charCodeAt(i);
        }
        const byteArray = new Uint8Array(byteNumbers);
        return byteArray;
    }
}

当我打印此youtube_video_url时,它是上一页或之前浏览过的视频。

1 个答案:

答案 0 :(得分:5)

可悲的是,在单页应用程序网站或不触发window.load事件的网站的情况下,onNavigationStateChange,onLoad,onLoadStart等所有webview方法都无法正常工作。

Normaly onNavigationStateChange在{load:true,url:“someUrl”,...}的请求开始时被触发,并且在使用{loading:false,url:“someUrl”,...加载url之后触发一次。 ..}。

没有全球解决方法(据我所知)可以适用于所有网站和iOs / Android,但这可能对您的情况有所帮助:

https://snack.expo.io/H1idX8vpM

基本上,您在webview中注入一个自定义javascript,通知WebView哪个是加载的页面。如果要捕获自定义window.history操作事件,可以增强它。