0
私はまだReact-Nativeの新人です。goBack機能を起動するために私のwebviewにアクセスする方法を理解しようとしています。ユーザーがAndroid搭載端末の「戻る」ボタンを押したときに表示されます。ここでは未定義です( '_this.webview.goBack()'を評価しています)
は何ですか( '_this.webview.goBackを()' を評価)関数ではありません、私は
constructor(props){
super(props);
}
componentDidMount() {
BackAndroid.addEventListener('hardwareBackPress', this.backHandler);
this.webview.messagesChannel.on('text', function({...})) //this is working
}
componentWillUnmount() {
BackAndroid.removeEventListener('hardwareBackPress', this.backHandler);
}
backHandler =() => {
this.webview.goBack(); //this throws and error
return true;
}
render() {
return (
<View style={styles.parent}>
<WebView
userAgent={"mobileapp"}
source={{uri: url}} style={styles.fullScreen}
domStorageEnabled={true}
ref={this._refWebView}
/>
</View>
);
}
_refWebView = (webview) => {
this.webview = webview;
}
を得たものだと私はシミュレータ
未定義に次のエラーを取得しますthis.webviewにアクセスする適切な方法は?
ありがとうございます!
をエラーがこの 'ことを示しています。 webview.goBack'は関数ではないので、 'this.webview'には問題がありません。' this.webview'が参照するものは 'goBack'メソッドを持たないものです。それは本当に意味ですか?それがそうであることを示す文書を指すことができますか?私はReact Nativeをしないので、適切な場所を探しているわけではないかもしれませんが、[私はここにはいません](https://facebook.github.io/react-native/docs/webview.html)。 –
私はこのチュートリアルのhttps://github.com/defining-technology/react-native-backbutton/blob/master/index.android.jsに従いましたが、私が正しい方法で行っているかどうかはわかりませんこの例ではボタンがありますが、バックボタンをwebviewのバック関数にバインドして、できるかどうかわかりません。 –
スキミングをスキップすると、そのチュートリアルで 'goBack'メソッドが期待されているようですウェブビュー。しかし、新しいコールバックフォームではなく "従来の" ref構文も使用されています.1年以上経過していて、古い "ライブ"リンクが壊れています(githubリポジトリに置き換えられました)。 WebViewが変更された可能性はありますか?とにかく、それと幸運! –