在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时,它是上一页或之前浏览过的视频。
答案 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操作事件,可以增强它。