الفرق بين المراجعتين لصفحة: «ReactNative/share»
رقية-بورية (نقاش | مساهمات) أنشأ الصفحة ب' = Share = == مثال == * مثال لمكون دالة (Function Component Example): <syntaxhighlight lang="javascript"> import React from 'react'; import { Share, V...' |
رقية-بورية (نقاش | مساهمات) ط مراجعة |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:Share في React Native}}</noinclude> | |||
__toc__ | |||
== مثال == | == مثال == | ||
سطر 84: | سطر 83: | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
static share(content, options) | static share(content, options) | ||
</syntaxhighlight> | </syntaxhighlight>يفتح هذا التابع مربّع حوارٍ لمشاركة محتوىً نصيٍّ، وعند استخدامه على المنصة iOS، فإنّه يُعيد وعدًا (Promise) يقبَل بواسطة كائنٍ يحوي مفتاحين <code>action</code>، و<code>activityType</code>، إذا رفض المستخدم مربّع الحوار، فإن الوعد سيستدعى بجعل قيمة المفتاح <code>action</code> مساويةً لـ <code>Share.dismissedAction</code>، مع ترك بقية المفاتيح دون تعريفٍ، إلى جانب ملاحظة أن بعض خيارات المشاركة لن تظهر، أو لن تعمل عند العمل على محاكي iOS. | ||
أما عند استخدامه على منصّة | أما عند استخدامه على منصّة Android، فإنه يُعيد وعدًا يُقبل دائمًا بجعل قيمة المفتاح <code>action</code> مساويةً <code>Share.sharedAction</code>. | ||
=== المحتوى (content) === | === المحتوى (content) === | ||
* <code>message</code> : الرّسالة المُراد مشاركتها. | * <code>message</code>: الرّسالة المُراد مشاركتها. | ||
==== على منصّة iOS ==== | ==== على منصّة iOS ==== | ||
* <code>url</code> : رابط (URL) المراد | * <code>url</code>: رابط (URL) المراد مشاركته، ويتطلّب رابطًا واحدًا، ورسالةً واحدةً على الأقلّ. | ||
==== على منصّة Android ==== | ==== على منصّة Android ==== | ||
سطر 108: | سطر 103: | ||
==== على منصة iOS ==== | ==== على منصة iOS ==== | ||
* <code>subject</code> : الموضوع المُراد مشاركته عبر البريد الالكتروني | * <code>subject</code>: الموضوع المُراد مشاركته عبر البريد الالكتروني | ||
* <code>excludedActivityTypes</code> | * <code>excludedActivityTypes</code> | ||
* <code>tintColor</code> | * <code>tintColor</code> | ||
سطر 119: | سطر 114: | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
static sharedAction | static sharedAction | ||
</syntaxhighlight>تمّت مشاركة المحتوى بنجاحٍ. | </syntaxhighlight>وتعني أنه قد تمّت مشاركة المحتوى بنجاحٍ. | ||
=== <code>dismissedAction</code> === | === <code>dismissedAction</code> === | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
static dismissedAction | static dismissedAction | ||
</syntaxhighlight>تم رفض صندوق الحوار هذا، ويُستخدم على منصّة iOS فقط. | </syntaxhighlight>والمقصود بها أنه قد تم رفض صندوق الحوار هذا، ويُستخدم على منصّة iOS فقط. | ||
== مصادر == | == مصادر == | ||
* [https://facebook.github.io/react-native/docs/share صفحة Share في توثيق React Native الرسميّ] | * [https://facebook.github.io/react-native/docs/share صفحة Share في توثيق React Native الرسميّ] | ||
[[تصنيف:ReactNative]] |
مراجعة 05:38، 7 يناير 2021
مثال
- مثال لمكون دالة (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 فقط.