試圖構建一個React Native應用程序,該應用程序在共享菜單(Share Action for Android,Share Extension for iOS)中插入菜單項。有沒有一個組件,如果不是什麼是最好的方式來建立一個?在React Native中添加共享操作
我不需要在我的應用程序中創建ActionSheet,我需要在共享菜單中注入菜單項以允許用戶從瀏覽器共享URL到我的應用程序。
試圖構建一個React Native應用程序,該應用程序在共享菜單(Share Action for Android,Share Extension for iOS)中插入菜單項。有沒有一個組件,如果不是什麼是最好的方式來建立一個?在React Native中添加共享操作
我不需要在我的應用程序中創建ActionSheet,我需要在共享菜單中注入菜單項以允許用戶從瀏覽器共享URL到我的應用程序。
您將需要添加一些本地代碼到您的項目。我沒有這方面的經驗,但這裏有一個關於如何在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。