2015-11-17 4 views
6

[共有]メニュー(Androidのアクションの共有、iOSのエクステンションの共有)にメニューアイテムを挿入し、アプリで共有アイテムを受け取るReactネイティブアプリを構築しようとしています。これのためのコンポーネントがありますか、それを構築する最良の方法は何ですか?リアクションネイティブでシェアアクション/エクステンションを追加する

あなたはコンポーネントに組み込まれて使用することができます
+2

あなたは解決策を見つけましたか?私は以下の答えがあなたが尋ねてきたものではないと信じています – stkvtflw

+1

また知りたいです。明らかに、以下の答えはOPの質問に答えません。 – ericpeters0n

答えて

6

https://www.npmjs.com/package/react-native-share-menu(現在はAndroid用)アンドロイド/アプリ/ build.gradleで

... 
include ':react-native-share-menu', ':app' 
project(':react-native-share-menu').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share-menu/android') 

:アンドロイド/ settings.gradleで

npm i --save react-native-share-menu

モジュールをインストールします。それを使用する方法です

... 
dependencies { 
    ... 
    compile project(':react-native-share-menu') 
} 
(MainActivity.java中)

登録モジュール:

import com.meedan.ShareMenuPackage; // <--- import 

public class MainActivity extends ReactActivity { 
...... 
    @Override 
    protected List<ReactPackage> getPackages() { 
     return Arrays.<ReactPackage>asList(
      new MainReactPackage(), 
      new ShareMenuPackage() // <------ add here  
     ); 
    } 
...... 
} 

例:

import React, { 
    AppRegistry, 
    Component, 
    Text, 
    View 
} from 'react-native'; 
import ShareMenu from 'react-native-share-menu'; 

class Test extends Component { 
    constructor(props) { 
     super(props); 
     this.state = { 
      sharedText: null 
     }; 
    } 

    componentWillMount() { 
     var that = this; 
     ShareMenu.getSharedText((text :string) => { 
      if (text && text.length) { 
       that.setState({ sharedText: text }); 
      } 
     }) 
    } 

    render() { 
     var text = this.state.sharedText; 
     return (
      <View> 
       <Text>Shared text: {text}</Text> 
      </View> 
     ); 
    } 
} 

AppRegistry.registerComponent('Test',() => Test); 
+0

アップデート:このコンポーネントはiOSもサポートするようになりました。 – infojunkie

+0

こんにちは@Caioを公開したいときはどうしますか?拡張時にメインプロジェクトのバンドルを使用しますか?またはそのバンドルを拡張子にコピーしますか?ありがとう! – MaKo

+0

@MaKoメインプロジェクトのバンドルを生成していますが、拡張子 –

-4

https://facebook.github.io/react-native/docs/actionsheetios.html#content

それとも、あなたが望む任意のビューを受け入れ、それがiOSのシェアの部品のように見えることができます。このコンポーネントを使用することができます。

https://github.com/eyaleizenberg/react-native-custom-action-sheet

これらのiOS用に設計されています。 Android(およびiOS)の場合は、次のように使用できます。 https://github.com/EstebanFuentealba/react-native-share

+0

これはOPの質問には答えません。 – ericpeters0n

-3

あなたは0.33で導入された新しい共有APIを使用することができます。私は実際にここでこれを行う方法に関するビデオを持っています:http://codecookbook.co/post/how-to-share-text-from-your-react-native-app/

+0

これはhttps://developers.facebook.com/docs/react-native/sharingで、逆の操作を指しています:RNアプリ内から外部サイトや他のアプリへの共有メニューを開くことです。すべてのアプリに表示される共有ITEMを挿入して、RNアプリにコンテンツを送信します。 – infojunkie

関連する問題