openEventsPlatformApp/plugins/cordova-plugin-x-socialsharing/src/wp8/SocialSharing.cs
plugins/cordova-plugin-x-socialsharing/src/wp8/SocialSharing.csRaw
1using Microsoft.Phone.Tasks;
2
3using WPCordovaClassLib.Cordova;
4using WPCordovaClassLib.Cordova.Commands;
5using WPCordovaClassLib.Cordova.JSON;
6
7using Newtonsoft.Json;
8
9namespace Cordova.Extension.Commands
10{
11 public class SocialSharing : BaseCommand
12 {
13
14 public void available(string jsonArgs)
15 {
16 DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
17 }
18
19 public void share(string jsonArgs)
20 {
21
22 var options = JsonHelper.Deserialize<string[]>(jsonArgs);
23
24 var message = options[0];
25 var title = options[1];
26 var files = JsonHelper.Deserialize<string[]>(options[2]);
27 var link = options[3];
28
29 if (link != null && !"null".Equals(link))
30 {
31 ShareLinkTask shareLinkTask = new ShareLinkTask();
32 shareLinkTask.Title = title;
33 shareLinkTask.LinkUri = new System.Uri(link, System.UriKind.Absolute);
34 shareLinkTask.Message = message;
35 shareLinkTask.Show();
36 }
37 else if (files != null && files.Length > 0)
38 {
39 ShareLinkTask shareLinkTask = new ShareLinkTask();
40 shareLinkTask.Title = title;
41 shareLinkTask.LinkUri = new System.Uri(files[0], System.UriKind.Absolute);
42 shareLinkTask.Message = message;
43 shareLinkTask.Show();
44 }
45 else
46 {
47 var shareStatusTask = new ShareStatusTask { Status = message };
48 shareStatusTask.Show();
49 }
50 // unfortunately, there is no way to tell if something was shared, so just invoke the successCallback
51 DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
52 }
53
54 public void canShareViaEmail(string jsonArgs)
55 {
56 DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
57 }
58
59 // HTML and attachments are currently not supported on WP8
60 public void shareViaEmail(string jsonArgs)
61 {
62 var options = JsonHelper.Deserialize<string[]>(jsonArgs);
63 EmailComposeTask draft = new EmailComposeTask();
64 draft.Body = options[0];
65 draft.Subject = options[1];
66 if (!"null".Equals(options[2]))
67 {
68 draft.To = string.Join(",", options[2]);
69 }
70 if (!"null".Equals(options[3]))
71 {
72 draft.Cc = string.Join(",", options[3]);
73 }
74 if (!"null".Equals(options[4]))
75 {
76 draft.Bcc = string.Join(",", options[4]);
77 }
78 draft.Show();
79 DispatchCommandResult(new PluginResult(PluginResult.Status.OK, true));
80 }
81
82 public void shareViaSMS(string jsonArgs)
83 {
84 var options = JsonHelper.Deserialize<string[]>(jsonArgs);
85
86 SmsComposeTask smsComposeTask = new SmsComposeTask();
87
88 smsComposeTask.To = options[1];
89 SMSMessageClass m = JsonConvert.DeserializeObject<SMSMessageClass>(options[0]);
90 smsComposeTask.Body = m.message;
91
92 smsComposeTask.Show();
93
94 DispatchCommandResult(new PluginResult(PluginResult.Status.OK, true));
95 }
96 }
97
98 public class SMSMessageClass
99 {
100 public string message { get; set; }
101 }
102
103}