ReactNative/share
مثال
- مثال لمكون دالة (Function Component Example):
import React from 'react';
import { Share, View, Button } from 'react-native';
const 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>
);
};
export default ShareExample;
- مثال لمكون صنف (Class Component Example)
import React, { Component } from 'react';
import { Share, View, Button } from 'react-native';
class ShareExample extends Component {
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);
}
};
render() {
return (
<View style={{ marginTop: 50 }}>
<Button onPress={this.onShare} title="Share" />
</View>
);
}
}
export default ShareExample;
التّوابع
static share(content, options)
يقوم بفتح مربّع حوارٍ لمشاركة محتوىً نصيٍّ.
عند استخدامه على المنصة iOS فإنّه يُعيد وعدًا (Promise) يقبَل بواسطة كائنٍ يحوي مفتاحين action
و activityType
، إذا رفض المستخدم مربّع الحوار فإن الوعد سيستدعى بجعل قيمة المفتاح action
مساويةً Share.dismissedAction
مع ترك بقية المفاتيح دون تعريفٍ. مع ملاحظة أن بعض خيارات المشاركة لن تظهر أو لن تعمل عند العمل على محاكي iOS.
أما عند استخدامه على منصّة Android فإنه يُعيد وعدًا يُقبل دائمًا بجعل قيمة المفتاح action
مساويةً Share.sharedAction
.
المحتوى (content)
message
: الرّسالة المُراد مشاركتها.
على منصّة iOS
url
: رابط (URL) المراد مشاركته.
يتطلّب رابطًا واحدًا ورسالةً واحدةً على الأقلّ.
على منصّة Android
title
: عنوان الرّسالة المُراد مشاركتها.
الخيارات (options)
على منصة iOS
subject
: الموضوع المُراد مشاركته عبر البريد الالكترونيexcludedActivityTypes
tintColor
على منصّة Android
dialogTitle
static sharedAction
تمّت مشاركة المحتوى بنجاحٍ.
dismissedAction
static dismissedAction
تم رفض صندوق الحوار هذا، ويُستخدم على منصّة iOS فقط.