3
Swift でハイブリッドiOSアプリケーションを開発し、WKWebViewでhistory.pushstate()を検出したいと考えています。 WKWebViewのメソッドをオーバーライドしましたが、何も検出できませんでした。WKWebViewでhistory.pushstateを検出する方法
history.pushstateを検出する方法やトリック()
Swift でハイブリッドiOSアプリケーションを開発し、WKWebViewでhistory.pushstate()を検出したいと考えています。 WKWebViewのメソッドをオーバーライドしましたが、何も検出できませんでした。WKWebViewでhistory.pushstateを検出する方法
history.pushstateを検出する方法やトリック()
これは確かに回避策ですが、あなたは(ほとんどのブラウザのように)組み込みオブジェクトのプロパティを編集することが許可されている場合は、両方をラップすることができますあります機能は、それらが呼び出されたときに追跡するためにインターセプトハンドラを使用して:
function track (fn, handler) {
return function interceptor() {
handler.apply(this, arguments)
return fn.apply(this, arguments)
}
}
history.pushState = track(history.pushState, function (state, title, url) {
// do something with `state, `title`, and `url`
console.log('pushState called with:', { state: state, title: title, url: url })
})
history.replaceState = track(history.replaceState, function (state, title, url) {
// do something with `state, `title`, and `url`
console.log('replaceState called with:', { state: state, title: title, url: url })
})
history.pushState(null, 'Title 1', '/example-page')
あなたはオーバーライドとはどういう意味ですか? – gyre
@gyre「func webView(blah blah blah)」を使用したことを意味します – hoi