Skip to content

Commit

Permalink
[EddyVerbruggen#121] Added support for sharing multiple images (or ot…
Browse files Browse the repository at this point in the history
…her files) - WP8 fix
  • Loading branch information
EddyVerbruggen committed May 31, 2014
1 parent 912f6d0 commit f5ac146
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 57 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ Sharing a link:
<button onclick="window.plugins.socialsharing.share('Optional message', 'Optional title', null, 'http://www.x-services.nl')">message, title, link</button>
```

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
<button onclick="window.plugins.socialsharing.share('Optional message', 'Optional title', 'https://www.google.nl/images/srpr/logo4w.png', null)">image only</button>
```
Expand Down
121 changes: 65 additions & 56 deletions src/wp8/SocialSharing.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<string[]>(jsonArgs);
var options = JsonHelper.Deserialize<string[]>(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<string[]>(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<string[]>(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<string[]>(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));
}
}
}
}

0 comments on commit f5ac146

Please sign in to comment.