页面重定向时如何从Webview获取URL? (这是在功能组件中而不是类中)

这是我的功能组件

const MyScreen = (props) => {

  return (
    <Wrapper>
      <WebView
        source={{uri: `${Helpers.URL}`}}
        javaScriptEnabled={true} //enabling JavaScript
        javaScriptEnabledAndroid={true}
        onmessage={event => {
        }}
        onLoadStart={() => {
          console.log("LOAD START ");
        }}
        onLoadEnd={() => {

        }}
        onError={err => {
          console.log('ERROR ');
          console.log(err);
        }}
        onNavigationStateChange = {() => {
          console.log('State changed...');
          // TODO: check what the url is at this point
        }}

      />
    </Wrapper>

  )
}

我希望能够获取新加载页面的网址。

saswertuygjhjh 回答:页面重定向时如何从Webview获取URL? (这是在功能组件中而不是类中)

您可以尝试

const MyScreen = (props) => {


  handleNavigationStateChange = navState => {
    // This gets us the navstate which has the url of the newly loaded page
    console.log(navState);
  };


  const url = `${Helpers.URL}`

  // this javascript will be injected on page load 
  const injectedJs = `
  window.postMessage(window.location.href);
`;


  return (
    <WebView
      source={{ uri: url }}
      bounces={true}
      style={[
        {
          flex: 1
        },]}
      injectedJavaScript={injectedJs}
      startInLoadingState
      scalesPageToFit
      javaScriptEnabledAndroid={true}
      javaScriptEnabled={true}
      onNavigationStateChange={this.handleNavigationStateChange}
      onMessage={event => {
        alert('MESSAGE >>>>' + event.nativeEvent.data);
      }}
      onLoadStart={() => {
        console.log("LOAD START ");
      }}
      onLoadEnd={() => {
        console.log('LOAD END');
      }}
      onError={err => {
        console.log('ERROR ');
        console.log(err);
      }}
    />
  )
}
本文链接:https://www.f2er.com/3146935.html

大家都在问