diff --git a/README.md b/README.md index ca5a736f..cb490388 100644 --- a/README.md +++ b/README.md @@ -319,7 +319,7 @@ Sharing a link: ``` -Sharing an image (only images from the internet are supported): +Sharing an image (only images from the internet are supported). If you pass more than one image as an array, only the first one is used: ```html ``` diff --git a/src/wp8/SocialSharing.cs b/src/wp8/SocialSharing.cs index 0014cbc8..351bac93 100644 --- a/src/wp8/SocialSharing.cs +++ b/src/wp8/SocialSharing.cs @@ -4,68 +4,77 @@ using WPCordovaClassLib.Cordova.Commands; using WPCordovaClassLib.Cordova.JSON; -namespace Cordova.Extension.Commands { - public class SocialSharing : BaseCommand { +namespace Cordova.Extension.Commands +{ + public class SocialSharing : BaseCommand + { - public void available(string jsonArgs) { - DispatchCommandResult(new PluginResult(PluginResult.Status.OK)); - } + public void available(string jsonArgs) + { + DispatchCommandResult(new PluginResult(PluginResult.Status.OK)); + } - public void share(string jsonArgs) { + public void share(string jsonArgs) + { - var options = JsonHelper.Deserialize(jsonArgs); + var options = JsonHelper.Deserialize(jsonArgs); - var message = options[0]; - var title = options[1]; - var image = options[2]; - var link = options[3]; + var message = options[0]; + var title = options[1]; + var files = JsonHelper.Deserialize(options[2]); + var link = options[3]; - if (!"null".Equals(link)) - { - ShareLinkTask shareLinkTask = new ShareLinkTask(); - shareLinkTask.Title = title; - shareLinkTask.LinkUri = new System.Uri(link, System.UriKind.Absolute); - shareLinkTask.Message = message; - shareLinkTask.Show(); - } - else if (!"null".Equals(image)) - { - ShareLinkTask shareLinkTask = new ShareLinkTask(); - shareLinkTask.Title = title; - shareLinkTask.LinkUri = new System.Uri(image, System.UriKind.Absolute); - shareLinkTask.Message = message; - shareLinkTask.Show(); - } - else - { - var shareStatusTask = new ShareStatusTask { Status = message }; - shareStatusTask.Show(); - } - // unfortunately, there is no way to tell if something was shared, so just invoke the successCallback - DispatchCommandResult(new PluginResult(PluginResult.Status.OK)); - } + if (!"null".Equals(link)) + { + ShareLinkTask shareLinkTask = new ShareLinkTask(); + shareLinkTask.Title = title; + shareLinkTask.LinkUri = new System.Uri(link, System.UriKind.Absolute); + shareLinkTask.Message = message; + shareLinkTask.Show(); + } + else if (files != null && files.Length > 0) + { + ShareLinkTask shareLinkTask = new ShareLinkTask(); + shareLinkTask.Title = title; + shareLinkTask.LinkUri = new System.Uri(files[0], System.UriKind.Absolute); + shareLinkTask.Message = message; + shareLinkTask.Show(); + } + else + { + var shareStatusTask = new ShareStatusTask { Status = message }; + shareStatusTask.Show(); + } + // unfortunately, there is no way to tell if something was shared, so just invoke the successCallback + DispatchCommandResult(new PluginResult(PluginResult.Status.OK)); + } - public void canShareViaEmail(string jsonArgs) { - DispatchCommandResult(new PluginResult(PluginResult.Status.OK)); - } + public void canShareViaEmail(string jsonArgs) + { + DispatchCommandResult(new PluginResult(PluginResult.Status.OK)); + } - // HTML and attachments are currently not supported on WP8 - public void shareViaEmail(string jsonArgs) { - var options = JsonHelper.Deserialize(jsonArgs); - EmailComposeTask draft = new EmailComposeTask(); - draft.Body = options[0]; - draft.Subject = options[1]; - if (!"null".Equals(options[2])) { - draft.To = string.Join(",", options[2]); - } - if (!"null".Equals(options[3])) { - draft.Cc = string.Join(",", options[3]); - } - if (!"null".Equals(options[4])) { - draft.Bcc = string.Join(",", options[4]); - } - draft.Show(); - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, true)); + // HTML and attachments are currently not supported on WP8 + public void shareViaEmail(string jsonArgs) + { + var options = JsonHelper.Deserialize(jsonArgs); + EmailComposeTask draft = new EmailComposeTask(); + draft.Body = options[0]; + draft.Subject = options[1]; + if (!"null".Equals(options[2])) + { + draft.To = string.Join(",", options[2]); + } + if (!"null".Equals(options[3])) + { + draft.Cc = string.Join(",", options[3]); + } + if (!"null".Equals(options[4])) + { + draft.Bcc = string.Join(",", options[4]); + } + draft.Show(); + DispatchCommandResult(new PluginResult(PluginResult.Status.OK, true)); + } } - } } \ No newline at end of file