嗨,我们在应用程序中使用以下库,它在Android和iOS上运行良好,但在华为设备上Share.open()不返回任何内容
这是我们用来共享文本的图书馆。
import Share from "react-native-share";
const message = "Text to share";
Share.open({
message,
}).then((res) => {
console.log(res);
return true;
}).catch((err) => {
console.log("Exception: ", err);
return false;
});
在华为设备中,它确实打开了共享对话框,我可以选择任何应用程序来共享消息,但回到我们的应用程序后,应用程序逻辑无法继续,因为承诺没有返回任何值。
我在华为P40Pro设备上测试,只有HMS可用。然而,即使是同时使用HMS和GMS的设备也存在同样的问题。
感谢您的帮助。
我建议使用不同的React Native Share组件,比如https://docs.expo.dev/versions/latest/react-native/share/上的Share组件。我使用世博会,这里是完成相同的文本共享功能为您的代码样例代码。在华为Mate 30 Pro和iPhone上测试了示例代码,React Native应用程序共享功能运行良好。
import React from 'react';
import { Share, View, Button } from 'react-native';
export default function ShareExample() {
const onShare = async () => {
try {
const result = await Share.share({
message: 'React Native | A framework for building native apps using React',
});
if (result.action === Share.sharedAction) {
if (result.activityType) {
// shared with activity type of result.activityType
} else {
// shared
}
} else if (result.action === Share.dismissedAction) {
// dismissed
}
} catch (error) {
alert(error.message);
}
};
return (
<View style={{ marginTop: 50 }}>
<Button onPress={onShare} title="Share" />
</View>
);
}