試圖構建一個React Native應用程序,該應用程序在共享菜單(Android的Share Action,Share Extension for iOS)中注入菜單項並接收應用程序中的共享項目。有沒有一個組件,如果不是什麼是最好的方式來建立一個?在React Native中添加共享操作/擴展
回答
我爲此模塊實現了一個模塊:https://www.npmjs.com/package/react-native-share-menu(目前僅適用於Android)。
這是如何使用它:
安裝模塊:
npm i --save react-native-share-menu
在安卓/ settings.gradle:
...
include ':react-native-share-menu', ':app'
project(':react-native-share-menu').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share-menu/android')
在Android設備/應用/的build.gradle:
...
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);
更新:此組件現在也支持iOS。 – infojunkie
嗨@Caio當你想發佈時,你會做什麼?你是否使用擴展主項目中的包?或者你是否複製粘貼該擴展名的包?謝謝! – MaKo
@MaKo我只是生成一個主項目包,其中將包括擴展 –
您可以使用內置的組件: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
這不回答OP的問題。 – ericpeters0n
您可以使用在0.33中引入的新股份的API。我實際上有一個關於如何在此處執行此操作的視頻:http://codecookbook.co/post/how-to-share-text-from-your-react-native-app/
如果你的意思是這:https://developers.facebook.com/docs/react-native/sharing然後你指的是逆操作:從RN應用程序打開共享菜單到外部網站或其他應用程序。這裏的問題是注入一個分享項目,該項目將在所有應用程序中顯示,以向RN應用程序發送內容。 – infojunkie
- 1. 在React Native中添加共享操作
- 2. 與React Native共享文件
- 3. 如何使用react-native-fbsdk共享操作?
- 4. 在React Native中使用擴展文件
- 5. iOS共享擴展,操縱網頁
- 6. 如何在React Native應用程序和共享擴展之間共享Realm數據庫
- 7. 在php擴展中添加兩個共享庫。誰?
- 8. 共享UserDefaults擴展
- 9. 從共享擴展
- 10. react-native-fbsdk的共享插件錯誤。
- 11. React Native - 與showShareActionSheetWithOptions共享本地圖像
- 12. 如何在Safari共享擴展上添加ios應用程序?
- 13. 獲取iOS共享/操作擴展僅顯示單個圖像
- 14. PDO擴展未加載共享主機
- 15. 如何在opera擴展中共享cookie?
- 16. 在IOS8 beta中共享擴展
- 17. 如何在Alfresco中擴展toolbar.get.config.xml共享
- 18. SWIG Lua:使用%native擴展(%擴展)類。可以添加%native方法嗎?
- 19. 在ios8中使用共享擴展共享圖像
- 20. ios共享擴展相機
- 21. 在ActionBar中添加一個簡單的共享操作
- 22. NSURLSession從MacOS共享擴展
- 23. Firefox擴展:共享狀態
- 24. iOS共享擴展通知
- 25. excel共享公式擴展
- 26. 分享到React-Native
- 27. 如何在編譯發佈時獲取React Native以將JS束放入共享擴展中?
- 28. 向iOS應用程序添加共享擴展
- 29. 在React Native中的兩個應用程序共享代碼
- 30. 在React Native中共享對話框FBSDK得到了undefined result.isCancelled&result.postId
您是否找到了解決方案?我相信下面的答案不是你一直在問的有關 – stkvtflw
也有興趣知道。很明顯,下面的答案不回答OP問題。 – ericpeters0n