2015-11-17 48 views
6

Paylaşımı menüsünde bir menü öğesi (Android için Paylaşma Eylemi, iOS için Uzantı Paylaş) adlı bir öğeyi enjekte eden ve uygulamada paylaşılan öğeleri alan React Native uygulamasını oluşturmaya çalışıyor. Bunun için bir bileşen var mı, yoksa bir tane inşa etmenin en iyi yolu nedir?React Native

+2

çözümü buldunuz mu? Aşağıdaki cevabın, – stkvtflw

+1

hakkında sorduğun şey olmadığını biliyorum. Açıkçası, aşağıdaki cevap OP sorusuna cevap vermiyor. – ericpeters0n

cevap

6

bunun için bir modül uyguladı. android/app/build.gradle olarak

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

: android/settings.gradle olarak

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

:

modülünü yükleyin: nasıl kullanılacağını var

:

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

Kayıt modülü:

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  
     ); 
    } 
...... 
} 

Örnek:

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

Güncelleme: Bu bileşen artık iOS'u da destekliyor. – infojunkie

+0

Merhaba @Caio yayınlamak istediğinizde ne yaparsınız? Demeti ana projeden uzantıdan mı kullanıyorsunuz? veya bu paketi uzantıya yapıştırın mı? Teşekkürler! – MaKo

+0

@MaKo Sadece ana projenin bir paketini oluşturarak, –

-4

Sen bileşeninde inşa kullanabilirsiniz: https://facebook.github.io/react-native/docs/actionsheetios.html#content

Ya da istediğiniz herhangi görüşünü kabul ve iOS payı bileşeni gibi yapar bu bileşeni kullanabilirsiniz:

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

Bunlar iOS için tasarlanmıştır. (Aynı zamanda ve iOS) Android için, bu kullanabilirsiniz: https://www.npmjs.com/package/react-native-share-menu (şu anda sadece Android için çalışır): https://github.com/EstebanFuentealba/react-native-share

+0

Bu OP'nin sorusuna cevap vermiyor. – ericpeters0n

-3

Sen 0.33 tanıtılan yeni Hisse api kullanabilirsiniz. Aslında bunun nasıl yapılacağı hakkında bir videom var: http://codecookbook.co/post/how-to-share-text-from-your-react-native-app/

+0

https://developers.facebook.com/docs/react-native/sharing sonra ters işlemden bahsediyorsunuz: RN app içinden harici bir siteye veya başka bir uygulamaya bir paylaşım menüsü açıyorsunuz. RN uygulamasına içerik göndermek için tüm uygulamalarda gösterilen bir paylaşım ITEM'i enjekte etmek. – infojunkie