2016-02-14 73 views
2

試圖構建一個React Native應用程序,該應用程序在共享菜單(Share Action for Android,Share Extension for iOS)中插入菜單項。有沒有一個組件,如果不是什麼是最好的方式來建立一個?在React Native中添加共享操作

我不需要在我的應用程序中創建ActionSheet,我需要在共享菜單中注入菜單項以允許用戶從瀏覽器共享URL到我的應用程序。

回答

2

您將需要添加一些本地代碼到您的項目。我沒有這方面的經驗,但這裏有一個關於如何在Android上完成的大綱。

簡化Android documentation's example,你應該能夠寫出這樣的事情,讓其他應用程序共享的文本字符串「變成了」您的應用程序:

AndroidManifest.xml中

... 
<activity android:name="<your_app>.MainActivity"> 
    <!-- Allow users to launch your app directly --> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
    <!-- Allow other apps to "share" with your app --> 
    <intent-filter> 
     <action android:name="android.intent.action.SEND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="text/plain" /> 
    </intent-filter> 
</activity> 
... 

MainActivity .java

... 
@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get intent, action and MIME type 
    Intent intent = getIntent(); 
    String action = intent.getAction(); 
    String type = intent.getType(); 

    // Match the intent specified in AndroidManifest.xml 
    if (Intent.ACTION_SEND.equals(action) && "text/plain".equals(type)) { 
      handleSendText(intent); // Handle text being sent 
    } 
} 
... 

如果你使用React Native編寫JavaScript中的大部分應用程序邏輯,您可能需要handleSendText來觸發Javascript事件 - 有關如何執行此操作的信息,請參閱React Native docs on native modules

相關問題