يعرض هذا المستند طريقة دمج المشاركة في تطبيق Android حتى يتسنى للمستخدمين مشاركة الصور ومقاطع الفيديو والملصقات على ريلز في Instagram.
Reels LayersThe Reels composer has a background video layer and an optional sticker layer.
Sharing Icon
|
استخدم الغرض الصريح لتشغيل تطبيق Instagram وإرسال محتوى ريلز له. يستلم تطبيق Instagram المحتوى ويعمل على تحميله في أداة إنشاء ريلز، ويمكن للمستخدم تعديل المحتوى ونشره على ريلز.
بشكل عام، يقوم دفق المشاركة بإجراء ما يلي:
"com.instagram.android" لضمان معالجة تطبيق Instagram للغرض.إزالة أي ملفات مؤقتة تقوم بإنشائها في جهاز المستخدم.
يجب إرسال البيانات التالية عند المشاركة على ريلز.
| البيانات | الوصف |
|---|---|
معرف تطبيق Meta string (سلسلة) | مطلوب. معرف تطبيق Meta |
أصول الوسائط سلسلة لأصل واحدأو قائمة أصول متعددة | مطلوب. مطلوب أحد الخيارات التالية:
|
أصل الملصق string (سلسلة) | محدد URI للملصق في الملف المحلي على جهاز المستخدم. تنسيقات الملصق المقبولة |
تعرض الأمثلة التالية على رمز Java وKotlin طريقة إرسال صورة أو فيديو واحد وطريقة إرسال صور أو مقاطع فيديو متعددة وكذلك طريقة إرسال صور ومقاطع فيديو تتضمن ملصقًا.
يرسل المثال التالي على الرمز ملف إلى Instagram حتى يتمكن المستخدم من تعديله ونشره على ريلز من Instagram.
// Instantiate an intent
val intent = Intent("com.instagram.share.ADD_TO_REEL")
// Set package
intent.setPackage("com.instagram.android")
// Attach your App ID to the intent
val appId = "your-app-id"
intent.putExtra("com.instagram.platform.extra.APPLICATION_ID", appId)
// Attach your image or video to the intent from a URI
val mediaAssetUri = Uri.parse("your-image-or-video-asset-uri-goes-here")
intent.setDataAndType(mediaAssetUri, "image/* video/*")
intent.putExtra(Intent.EXTRA_STREAM, mediaAssetUri)
// Instantiate an activity
val activity: Activity = getActivity()
// Grant URI permissions
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
val resInfoList = activity.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
activity.grantUriPermission(packageName, mediaAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
// Verify that the activity resolves the intent and start it
if (activity.packageManager.resolveActivity(intent, 0) != null) {
activity.startActivityForResult(intent, 0)
}يرسل المثال التالي على الرمز ملفات متعددة إلى Instagram حتى يتمكن المستخدم من تعديلها ونشرها على ريلز من Instagram.
// Instantiate an intent
val intent = Intent("com.instagram.share.ADD_TO_REEL_MULTIPLE")
// Set package
intent.setPackage("com.instagram.android")
// Attach your App ID to the intent
val appId = "your-app-id"
intent.putExtra("com.instagram.platform.extra.APPLICATION_ID", appId)
intent.setType("image/* video/*")
// Attach your files to the intent
val uri1 = Uri.parse("your-first-uri-goes-here")
val uri2 = Uri.parse("your-second-uri-goes-here")
val mediaList = mutableListOf<Uri>()
mediaList.addAll(listOf(uri1, uri2))
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, ArrayList(mediaList))
// Instantiate an activity
val activity: Activity = getActivity()
// Grant URI permissions
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
val resInfoList =
activity.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (uri in mediaList) {
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
activity.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
}
// Verify that the activity resolves the intent and start it
if (activity.packageManager.resolveActivity(intent, 0) != null) {
activity.startActivityForResult(intent, 0)
}يرسل المثال التالي على الرمز فيديو يتضمن ملصقًا اختياريًا إلى Instagram، حتى يتمكن المستخدم من تعديله ونشره على ريلز من Instagram.
// Instantiate an intent
val intent = Intent("com.instagram.share.ADD_TO_REEL")
// Set package
intent.setPackage("com.instagram.android")
// Attach your App ID to the intent
val appId = "your-app-id"
intent.putExtra("com.instagram.platform.extra.APPLICATION_ID", appId)
// Attach your video to the intent from a URI
val videoAssetUri = Uri.parse("your-video-asset-uri-goes-here")
intent.setDataAndType(videoAssetUri, "video/*")
intent.putExtra(Intent.EXTRA_STREAM, videoAssetUri)
// Attach your sticker to the intent from a URI
val stickerAssetUri = Uri.parse("your-image-asset-uri-goes-here")
intent.putExtra("interactive_asset_uri", stickerAssetUri)
// Instantiate an activity
val activity: Activity = getActivity()
// Grant URI permissions
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
val resInfoList = activity.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
activity.grantUriPermission(packageName, videoAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
activity.grantUriPermission(packageName, stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
// Verify that the activity resolves the intent and start it
if (activity.packageManager.resolveActivity(intent, 0) != null) {
activity.startActivityForResult(intent, 0)
}لتسهيل الأمر بشكل أكبر على المطوّرين، قامت Meta بنشر عينة من الرمز للمشاركة على ريلز من Instagram على GitHub في fbsamples/share_to_reels_android. شاهد الفيديو التالي للتعرف على طريقة استخدام عينة GitHub.