gpt4 book ai didi

react-native - 在 React Native 中添加共享操作/扩展

转载 作者:行者123 更新时间:2023-12-03 14:44:26 29 4
gpt4 key购买 nike

尝试构建一个 React Native 应用程序,该应用程序在 Share 菜单中注入(inject)一个菜单项(Android 的 Share Action,iOS 的 Share Extension)并在应用程序中接收共享项目。是否有一个组件,如果没有,构建一个组件的最佳方法是什么?

最佳答案

我为此实现了一个模块:https://www.npmjs.com/package/react-native-share-menu (目前仅适用于 Android)。

这就是它的使用方法:

安装模块:
npm i --save react-native-share-menu
在 android/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/app/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);

关于react-native - 在 React Native 中添加共享操作/扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766677/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com