iOS・Androidのネイティブ機能をJavaScriptで操作する標準APIを使って、シェアボタンを実装する手順を紹介する。

Shareの基本的な使い方

Shareを利用することで、SNSやメール、Bluetoothを使ったファイルのコピーなど、スマホアプリでよく使われるシェア機能を実装することができる。

Share.share({
  title: 'タイトル',
  message: '概要'
}, {}).then((result, activityType) => {
  // 結果を受け取る
})

サンプルコード

Shareを使ったサンプルコードがこちら。

import React, { Component } from 'react';
import { Text, View, Button, Share } from 'react-native';


export default class App extends Component {
  constructor(props) {
    super(props);
  }

  openShare() {
    Share.share({
      title: 'タイトル',
      message: '概要'
    }, {}).then((result, activityType) => {
      if(result.action == Share.dismissedAction) {
        // シェアを中断した場合の処理(iOSのみ)
      } else if(result.action == Share.sharedAction) {
        // シェアを実行した場合(Androidの場合は常にここの処理が実行される)
      } else {

      }
    });
  }

  render() {
    return (
      <View style={{
        flex: 1,
        justifyContent: 'center',
        alignItems:  'center',
        backgroundColor: '#F5FCFF', 
      }}>
        <Button onPress={() => this.openShare()} title={'シェアする'} />
      </View>
    );
  }
}

Expoで実機確認を行ってみよう。

アプリが起動すると画面中央にボタンが現れる。

ボタンをタップするとOS標準のシェアダイアログが表示される。