2016-12-01 43 views
0

的WebView加載網頁關於injectScript在WebView中的陣營本地

我需要調用陣營本地組件的方法在頁面

class Mwap extends Component { 

constructor(props) { 
    super(props); 
    this.injectScript = ` 
     function setTitle(title){ 
      mwap.MyClick(); 
     } 
    `; 
} 

componentDidMount(){ 
    window.mwap = this; 
} 

MyClick(){ 
    console.log('Call me'); 
} 

render() { 
    return (
     <View style={styles.container}> 
      <MwapHeader 
       goBack={this.goBack.bind(this)} 
       closeWebView={this.closeWebView.bind(this)} 
       toonShare={this.toonShare.bind(this)} 
      /> 
      <View style={styles.line}/> 
      <WebView 
       ref={(ref) => { 
        this.webView = ref; 
       }} 
       automaticallyAdjustContentInsets={false} 
       style={styles.webView} 
       source={{uri: this.props.url}} 
       injectedJavaScript={this.injectScript} 
       javaScriptEnabled={true} 
       domStorageEnabled={true} 
       decelerationRate="normal" 
       startInLoadingState={true} 
       scalesPageToFit={true} 
      /> 
     </View> 
    ); 
} 
} 

我注入了功能與injectScript

此函數調用Mwap組件的方法

我設置了window.mwap = this;

但在頁,window.mwap是不確定的

如何調用在WebView中加載的網頁陣營組件的方法?

請幫我

謝謝

回答

0

你注入沒有你的陣營本地JavaScript代碼的任何連接的JavaScript代碼。您在注入的JS中使用的變量mwap與您的組件沒有任何關係。恐怕這種行爲是不允許的。但是,您可以檢查this answer的替代選項,或者react-native-webview-bridge包。