React Native「WebView」内で開いたサイトのリンクをsafariで開く


概要

普段はReact NativeでIOSアプリを開発してます
今回はreactnativeのWebViewでサイトを開いた際に最初のページだけはアプリ内を、
開いた後のリンクはsafariで開く方法を共有します

アプリ登録は省略します

WebViewPage.js
import React, { Component } from 'react';
import { WebView, Linking } from 'react-native';

class WebViewPage extends Component {
  render() {
    const uri = 'https://qiita.com/';
    return (
      <WebView
        ref={(ref) => { this.webview = ref; }}
        source={{ uri }}
        onNavigationStateChange={(event) => {
          if (event.url !== uri) {
            this.webview.stopLoading();
            Linking.openURL(event.url);
          }
        }}
      />
    );
  }
}

export default WebViewPage;

動かなかったり、改善点など共有していただけると幸いです

参考文献

stackoverflow: React Native - open links in browser