React Native

React-Nativeで設定画面に遷移する

React Native
この記事は約3分で読めます。

前提条件

  • React-Nativeの環境を構築済み
  • エミュレーターをIOSとAndroid両方立ち上げられる

実装方法

わかりやすいようにonPressした際に設定画面に遷移させます
下記ではButtonを押しても特に何も起きません

App.js

import React from 'react';
import {StyleSheet, View, Button} from 'react-native';

const App = () => {
  return (
    <View style={styles.container}>
      <Button title="設定画面に飛ぶ" />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
});

export default App;
スクリーンショット 2021-03-23 13.36.02.png

Buttonコンポーネント押下時に設定画面に飛ぶための処理を加えます

App.js

import React from 'react';
import {StyleSheet, View, Button, Linking} from 'react-native';
// Linkingをimport

const App = () => {
  return (
    <View style={styles.container}>
      {/* openSettings()で設定画面に遷移させる */}
      <Button title="設定画面に飛ぶ" onPress={() => Linking.openSettings()} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
});

export default App;

これで設定画面に遷移するはず!

ちなみに


Linking.openURL('app-settings:');

こちらでも設定画面に遷移しますがバージョンによってはiOSでしか遷移しなかったりするので両OSで設定画面に遷移させたい場合はLinking.openSettings()を使用するのが現状良いのかなと思います。

参考

https://qiita.com/seiya-koga/items/58e7bcbfd6bb39c4407b
https://stackoverflow.com/questions/44582694/react-native-open-settings-through-linking-openurl-in-ios