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