react-native-wkwebview icon indicating copy to clipboard operation
react-native-wkwebview copied to clipboard

"onNavigationStateChange" Unable to listen for route changes for single-page applications

Open hzuhyb opened this issue 7 years ago • 2 comments

I use onNavigationStateChange to monitor the change of URL:

onNavigationStateChange = (navState) => { console.log(navState) }

however, it will not be called if the page your WKWebView is trying to open is a SPA.

Environment

OS:  macOS Sierra 10.13.6
Node:  8.9.1
Yarn:  0.24.5
npm:  5.4.0

Packages: (wanted => installed)
react-native: 0.53.0
react: 16.3.1
react-native-wkwebview-reborn:  1.22.0

Steps to Reproduce

1.WKWebView opens https://eos.live and logs in 2.Click to jump to other pages

When the web page in WKWebView uses history.pushState () to change URL, onNavigationStateChange does not execute

Expected Behavior

onNavigationStateChange executes after each URL change

Actual Behavior

onNavigationStateChange does not execute every time URL changes

Reproducible Demo

<WKWebView
  onNavigationStateChange={this.onNavigationStateChange.bind(this)}
  source={{uri:"https://eos.live"}}
  allowsInlineMediaPlayback={true}
  domStorageEnabled={true}
  javaScriptEnabled={true}
  scalesPageToFit={false}
/>

hzuhyb avatar Sep 30 '18 03:09 hzuhyb

I have the same problem, did you solved it?

yurnery avatar Oct 27 '18 03:10 yurnery

me too, any solution? or merge pull request https://github.com/CRAlpha/react-native-wkwebview/pull/210

ColinChen2 avatar Jan 22 '19 06:01 ColinChen2