gpt4 book ai didi

react-native - 从使用 Expo SDK 构建的 React-Native 应用程序将照片分享到 Instagram

转载 作者:行者123 更新时间:2023-12-04 04:24:08 31 4
gpt4 key购买 nike

我希望我的 react-native 应用程序与 Instagram 分享照片。我知道在编写 native 代码时可以使用指定的照片打开 Instagram 的过滤器屏幕。一个限制是我使用的是 Expo SDK,它不允许本地依赖项的“npm 链接”。

当这个函数被调用时,它会打开 Instagram:

  _handlePress = () => {
Linking.openURL('instagram://app');
}

这是按钮:
   <Button 
onPress={this._handlePress}
title='Open Instagram'
/>

图像存储在状态:
  state = {
image: null,
uploading: false
}

我可以在 Image 标签中显示图像就好了:
<Image
source={{uri: image}}
style={{width: 300, height: 300}}
/>

但是,我无法将图像传递给 Instagram。以下是一些失败的研究:
第三方库:
react-native-instagram-share: https://www.instagram.com/developer/mobile-sharing/iphone-hooks/

因为我不能使用“链接”来使用 native 依赖项。我使用的 Expo SDK 不允许本地依赖项的“链接”。

Instagram 文档解释了如何打开 Instagram,并且可以使用 native 代码来传递图像。其中,是使用 JavaScript 中不可用的“UIDocumentInteractionController”。
https://www.instagram.com/developer/mobile-sharing/iphone-hooks/

我的问题没有任何其他 Stackoverflow 答案。

最佳答案

我在这里整理了一个可以在 iOS 上运行的示例:https://snack.expo.io/rkbW-EG7-

完整代码如下:

import React, { Component } from 'react';
import { Linking, Button, View, StyleSheet } from 'react-native';
import { ImagePicker } from 'expo';

export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Button title="Open camera roll" onPress={this._openCameraRoll} />
</View>
);
}

_openCameraRoll = async () => {
let image = await ImagePicker.launchImageLibraryAsync();
let { origURL } = image;
let encodedURL = encodeURIComponent(origURL);
let instagramURL = `instagram://library?AssetPath=${encodedURL}`;
Linking.openURL(instagramURL);
}
}

const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#ecf0f1',
},
});

这将让您打开相机胶卷并选择一张图像,然后打开选择该图像的 Instagram 应用程序。如果图像不在相机胶卷上,那么您可以使用 CameraRoll.saveToCameraRoll在图像 ( link to React Native documentation ) 上到达那里。

但是,此示例中使用的方法仅在您同意从相机胶卷共享时才有效,而且我不确定如何在 Android 上执行此操作。我 made an issue on Expo's feature request board确保 Instagram 共享开箱即用。

关于react-native - 从使用 Expo SDK 构建的 React-Native 应用程序将照片分享到 Instagram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44600245/

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