1

当前试图检测反应原生 web 视图中页面的 URL 更改,以便在每次用户导航到 web 视图中加载的网站中的新页面时采取行动。我正在注入以下 javascript,但它仅在加载页面上运行,而不在导航到站点内的其他页面上运行。

我怎样才能让这个 javascript 片段在这个站点的每个页面上运行?

javascript 片段和 WebView 组件:

const App: () => React$Node = () => {
  const injectedjs = `
  let initialUrl = window.location.href;
  window.alert(initialUrl)
  let checkUrlChange = () => {
    document.body.style.backgroundColor = 'blue';
    const currentUrl = window.location.href;
    if(currentUrl !== initialUrl){
      window.alert('nav changed')
      initialUrl = currentUrl;
    }
  }
  setInterval(checkUrlChange, 1000);
  true`

  setTimeout(() => {
    this.webref.injectJavaScript(injectedjs);
  }, 3000);

  return (
    <View style={{ flex: 1 }}>
      <WebView
        ref={r => (this.webref = r)}
        javaScriptEnabled = {true}
        source={{ uri: 'https://www.amazon.ca/' }}
      />
    </View>
  );
};
4

0 回答 0