Skip to main content

iOS Share Feature

Use the SendMessage or Share method and pass in FriendReqInfo to enable sharing. For callback information, refer to Unity Callback / Unreal Callback.

Facebook​

Requires installation of Facebook/Messenger app, iOS 15.1+.

note
  • Since 2019.06.10, the Share to Messenger SDK no longer supports new apps
  • Since Facebook SDK V4.22.0, the Title, Description, Caption, and ImagePath fields are ignored when sharing links
MethodContentTarget
SendMessageLinkMessenger
ShareLinkFeed
ShareImageFeed / Gaming
ShareVideoFeed / Reels

Share link to Messenger.

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.facebook.com/link";
INTLAPI.SendMessage(reqInfo, INTLChannel.Facebook);
分享链接

Share link to Facebook Feed.

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
  • ExtraJson (optional): {"hashtag":"#value"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.facebook.com/link";
reqInfo.ExtraJson = "{\"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);
分享hashtag

Share: Image​

Share image to Facebook Feed or Gaming.

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Local path or URL (≤12MB)
  • ExtraJson (optional):
    • Feed mode: {"hashtag":"#value"}
    • Gaming mode: {"mode":1} (hashtag not supported)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);

Feed share example: For reference, see Share: Link

Gaming sharing example:

分享hashtag

Share: Video​

Share video to Facebook Feed or Reels.

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Local path (≤50MB)
  • **ExtraJson **:
    • Feed mode: {"hashtag":"#value"}
    • Reels mode: {"share_to_reels":true, "hashtag":"#value"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";

// Share to Feed
reqInfo.ExtraJson = "{\"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);

// Share to Reels
reqInfo.ExtraJson = "{\"share_to_reels\":true, \"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);
分享hashtag

Garena​

Important Notice

Garena has announced that it will migrate from the Garena mobile app to the web system by the end of 2024.Garena sub-channels will no longer be available.

Use the subChannel parameter in ExtraJson to share content to Garena-supported sub-channels (Facebook, LINE).

ExtraJson parameters:

  • subChannel: Sub-channel name (Facebook / Line)
  • mediaTagName: Extra parameter or empty string
  • caption: Description for shared content (optional)

Sub-channel: Facebook​

Facebook app must be installed.

MethodContent
ShareText, link, image

Share: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
  • ExtraJson: {"subChannel":"Facebook"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\"}";
INTLAPI.Share(reqInfo, "Garena");

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
  • ExtraJson: {"subChannel":"Facebook"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\"}";
INTLAPI.Share(reqInfo, "Garena");

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (≤12MB)
  • ExtraJson: {"subChannel":"Facebook", "mediaTagName":"me"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\",\"mediaTagName\":\"me\"}";
INTLAPI.Share(reqInfo, "Garena");

Sub-channel: LINE​

Requires LINE app installation, Garena login not required.

MethodContent
SendMessageLink, image
ShareLink, image

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.SendMessage(reqInfo, "Garena");

SendMessage: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.SendMessage(reqInfo, "Garena");

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.Share(reqInfo, "Garena");

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.Share(reqInfo, "Garena");
分享hashtag

LINE​

Requires LINE app installation, iOS 17.0+.

MethodContent
SendMessageText, image

SendMessage: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "INTL services";
INTLAPI.SendMessage(reqInfo, INTLChannel.Line);

SendMessage: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Local path or URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.Line);

WeChat​

Requires WeChat app installation, iOS 14.0+.

MethodContent
SendMessageText, link, image, video
ShareText, link, image, video

SendMessage: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);

SendMessage: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);
分享hashtag

SendMessage: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);

Share: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, it's been a while";
INTLAPI.Share(reqInfo, INTLChannel.W);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, INTLChannel.W);

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.W);
分享hashtag

Share: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.W);

QQ​

Requires QQ app installation, iOS 14.0+.

MethodContentTarget
SendMessageText, link, image, videoQQ Friend
ShareLink, image, videoQZone

SendMessage: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content (≤1536 characters)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "INTL text sending test";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);
分享hashtag

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Title: Title (≤128 characters)
  • Description: Description (≤512 characters)
  • Link: URL (≤1024 characters)
  • ThumbPath: Thumbnail (≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.Title = "INTL test";
reqInfo.Description = "INTL link sending test";
reqInfo.ThumbPath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

SendMessage: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (local or URL, ≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

SendMessage: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local path)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Title: Title (≤128 characters)
  • Description: Description (≤512 characters)
  • Link: URL (≤1024 characters)
  • ImagePath: Thumbnail (≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Title = "INTL share";
reqInfo.Description = "INTL description";
reqInfo.Link = "https://www.google.com";
reqInfo.ImagePath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.Share(reqInfo, INTLChannel.QQ);

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (local or URL, ≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
INTLAPI.Share(reqInfo, INTLChannel.QQ);

Share: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local path)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.QQ);
分享hashtag

Instagram​

Requires Instagram app installation, iOS 15.1+.

note

When sharing images or videos, Share will immediately return success regardless of actual result.

MethodContent
ShareImage, video

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (recommended JPEG 640x640px)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.Instagram);

Share: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (MP4, 3-600 seconds, ≥640×640px)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.Instagram);
分享hashtag

WhatsApp​

Requires installation and login to WhatsApp app.

note

When sharing text or links, Share will immediately return success regardless of actual result.

MethodContent
ShareText, link, image, video

Share: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, "WhatsApp");

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, "WhatsApp");

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, "WhatsApp");

Share: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "WhatsApp");
分享hashtag

YouTube​

note

To share on YouTube for the first time, you need to create a channel.Create a YouTube channel with your authorized Google account, using any of the following methods:

  • Mobile browser: Login to YouTube → tap the avatar → tap "Create channel" → enter channel name → done.
  • YouTube App: After logging in, tap the avatar → "Your channel" → the system will guide you through creating one.
  • Google account dashboard: Login to Google → open dashboard → YouTube → create channel.
MethodContent
ShareVideo

Share: Video​

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local or URL)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "Youtube");

TikTok​

Requires installation and login to TikTok app.

MethodContent
ShareVideo

Share: Video​

On iOS, TikTok share always uses the local video mode.The SDK requests photo library permission and presents the system photo picker; the player selects a video from the Photos app, and the SDK forwards that asset to the TikTok share sheet.

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Ignored on iOS. The player selects the video from the system photo library.
  • ExtraJson: Ignored on iOS. The Android-specific fields shareLocalVideoFlag, needLoginTikTok, and shareUrl have no effect on iOS.
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
INTLAPI.Share(reqInfo, "TikTok");
分享hashtag

X​

Requires installation and login to X app.

note

X SDK is no longer maintained; system sharing will be used when sharing content.

MethodContent
ShareText, link, image
Notes
  • During iOS authorization, X may not be able to redirect back to the game. You can retry to resolve this.
  • Multi-account switching: Add "login_first":1 to ExtraJson to force re-authorization.
  • Repeatedly sharing the same content in a short period may result in a 403 error

Share: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
  • ExtraJson (optional): {"login_first":1} to force re-authorization
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
  • ExtraJson (optional): {"login_first":1} to force re-authorization
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: image path (local or URL)
  • ExtraJson (optional): {"login_first":1} to force re-authorization
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

VK​

MethodContent
ShareText, link, image

Share: Text​

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.VK);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • **Link **: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, INTLChannel.VK);

Share: Image​

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: image path (local or URL)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.VK);

System Share​

note

The Facebook Share Extension is not compatible with iOS 13, causing system share failures. It is recommended to use the Facebook SDK Channel to Share.

Use iOS native sharing functionality.

MethodContent
ShareText, link, image

Parameter requirements:

  • Text: Description
  • Link: Description + Link
  • Image: ImagePath

Customize the sharing interface​

Only supports removing iOS system apps (Mail, SMS, Reminders, AirDrop, etc.), cannot control the display of third-party apps.ExtraJson configuration is not effective for system sharing.

Data Reporting​

Player Network SDK will automatically report system share events, and data reports can be queried on the DD platform under insight_1000_system_share.

Key fields:

  • name: callback name, e.g. vk:com.vkontakte.android.sharing.SharingExternalActivity
  • package_name: channel package name, e.g. QQ's com.tencent.mqq

Reports can be filtered by keywords, such as QQ, Facebook, VK, etc.

分享hashtag