public async void ShareText() { var shareScene = ComboBox.SelectionBoxItem as ShareScene; if (shareScene == null) { return; } try { var scene = shareScene.Scene; var message = new WXTextMessage { Title = "Sharing a text title!", Text = "This is text content", Description = "This is a text message.这是一个文本消息。", ThumbData = null }; SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI("[YOUR APP ID]"); var isValid = await api.SendReq(req); } catch (WXException ex) { Debug.WriteLine(ex.Message); } }
/// <summary> /// 文本分享到微信好友 /// </summary> /// <param name="text"></param> /// <param name="title"></param> /// <param name="thumb"></param> public async void TextShare2SessionRequest(string text, string title, byte[] thumb) { var message = new WXTextMessage { Text = text, ThumbData = thumb, Title = title }; SendMessageToWX.Req request = new SendMessageToWX.Req(message, SendMessageToWX.Req.WXSceneSession); IWXAPI api = WXAPIFactory.CreateWXAPI(APP_ID); await api.SendReq(request); }
/// <summary> /// 网页分享到微信朋友圈 /// </summary> /// <param name="url"></param> /// <param name="title"></param> /// <param name="thumb"></param> public async void WebPageShare2TimelineRequest(string url, string title, byte[] thumb) { var message = new WXWebpageMessage { WebpageUrl = url, ThumbData = thumb, Title = title }; SendMessageToWX.Req request = new SendMessageToWX.Req(message, SendMessageToWX.Req.WXSceneTimeline); IWXAPI api = WXAPIFactory.CreateWXAPI(APP_ID); await api.SendReq(request); }
public bool CheckSupported() { if (Req == null && Resp == null) { return(false); } bool flag; switch (ConmandId) { case 1: case 2: case 3: case 4: case 5: flag = true; break; default: flag = false; break; } WXBaseMessage message = null; if (Req is SendMessageToWX.Req) { SendMessageToWX.Req req = (SendMessageToWX.Req)Req; message = req.Message; } if (Req is ShowMessageFromWX.Req) { ShowMessageFromWX.Req req2 = (ShowMessageFromWX.Req)Req; message = req2.Message; } if (Resp is GetMessageFromWX.Resp) { GetMessageFromWX.Resp resp = (GetMessageFromWX.Resp)Resp; message = resp.Message; } if (message != null) { flag &= (message.Type() >= 0) && (message.Type() <= 8); } return(flag); }
public bool CheckSupported() { if (this.Req == null && this.Resp == null) { return(false); } bool flag; switch (this.ConmandID) { case 1: case 2: case 3: case 4: case 5: flag = true; break; default: flag = false; break; } WXBaseMessage wXBaseMessage = null; if (this.Req != null && this.Req is SendMessageToWX.Req) { SendMessageToWX.Req req = this.Req as SendMessageToWX.Req; wXBaseMessage = req.Message; } if (this.Req != null && this.Req is ShowMessageFromWX.Req) { ShowMessageFromWX.Req req2 = this.Req as ShowMessageFromWX.Req; wXBaseMessage = req2.Message; } if (this.Resp != null && this.Resp is GetMessageFromWX.Resp) { GetMessageFromWX.Resp resp = this.Resp as GetMessageFromWX.Resp; wXBaseMessage = resp.Message; } if (wXBaseMessage != null) { flag &= (wXBaseMessage.Type() >= 0 && wXBaseMessage.Type() <= 8); } return(flag); }
private async Task WechatShare() { try { var scene = SendMessageToWX.Req.WXSceneChooseByUser; var pic = await GetImageData(); var message = new WXImageMessage() { Title = GetImageTitle(), ImageData = pic }; SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI(App.WechatAppId); var isValid = await api.SendReq(req); } catch { await new MessageDialog(LocalizedStrings.ShareFailed).ShowAsyncEnqueue(); } }
private void weixin_share_click(object sender, System.Windows.RoutedEventArgs e) { var askk = new CustomMessageBox() { Caption = "分享方式", Message = "发到朋友圈还是微信好友?", LeftButtonContent = "微信好友", RightButtonContent = "朋友圈" }; customMessageBoxOpened = true; askk.Dismissed += async (ss, ee) => { sharePopup.IsOpen = false; int scene = 0; switch (ee.Result) { case CustomMessageBoxResult.RightButton: scene = SendMessageToWX.Req.WXSceneTimeline; break; case CustomMessageBoxResult.LeftButton: scene = SendMessageToWX.Req.WXSceneSession; break; case CustomMessageBoxResult.None: default: return; } string AppID = "wxe92e817bb0352573"; var msg = new WXWebpageMessage(); if (a == null) { MessageBox.Show("Object a is null"); return; } await a.StatusReady(); msg.Title = a.title; msg.Description = string.IsNullOrEmpty(a.Abstract) ? "点击链接看详细内容" : a.Abstract; msg.ThumbData = await readRes(a.small_pic_url); msg.WebpageUrl = a.wwwurl; try { SendMessageToWX.Req req = new SendMessageToWX.Req(msg, scene); IWXAPI api = WXAPIFactory.CreateWXAPI(AppID); Console.WriteLine("api.SendReq in"); api.SendReq(req); GoogleAnalytics.EasyTracker.GetTracker().SendEvent("Sharing", "Weixin_share", NavigationService.CurrentSource.ToString().Contains("FileTypeAssociation")?"Restarted":"Started", 1); } catch (WXException ex) { MessageBox.Show(ex.Message); } }; askk.Show(); }
public async void ShareImage() { var shareScene = ComboBox.SelectionBoxItem as ShareScene; if (shareScene == null) { return; } try { var scene = shareScene.Scene; var file = await Package.Current.InstalledLocation.GetFileAsync("1.png"); using (var stream = await file.OpenReadAsync()) { var pic = new byte[stream.Size]; await stream.AsStream().ReadAsync(pic, 0, pic.Length); var message = new WXImageMessage { Title = "Sharing a picture!", Description = "This is a image message.这是一个图片消息", ThumbData = pic, ImageUrl = "http://tp3.sinaimg.cn/1882347990/180/5725518284/1" }; SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI("[YOUR APP ID]"); var isValid = await api.SendReq(req); } } catch (WXException ex) { Debug.WriteLine(ex.Message); } }
public async void ShareLink() { var shareScene = ComboBox.SelectionBoxItem as ShareScene; if (shareScene == null) { return; } try { var scene = shareScene.Scene; var file = await Package.Current.InstalledLocation.GetFileAsync("1.png"); using (var stream = await file.OpenReadAsync()) { var pic = new byte[stream.Size]; await stream.AsStream().ReadAsync(pic, 0, pic.Length); var message = new WXWebpageMessage { WebpageUrl = "http://www.baidu.com", Title = "Sharing a link!", Description = "This is a link message.这是一个链接消息", ThumbData = pic }; SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI("[YOUR APP ID]"); var isValid = await api.SendReq(req); } } catch (WXException ex) { Debug.WriteLine(ex.Message); } }
private async void PnlWechat_Tapped(object sender, TappedRoutedEventArgs e) { IsExecuting = true; if (DeviceFamilyHelper.IsDesktop) { await new MessageDialog("抱歉,桌面端暂时不支持该功能").ShowAsyncEnqueue(); IsExecuting = false; return; } try { int scene = SendMessageToWX.Req.WXSceneChooseByUser; WXWebpageMessage message = new WXWebpageMessage() { Title = _feed.Title, WebpageUrl = "http://www.u148.net/article/" + _feed.Id + ".html", Description = _feed.Summary }; SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI("wx725b599977a3718a"); var isValid = await api.SendReq(req); } catch { await new MessageDialog("分享失败").ShowAsyncEnqueue(); } IsExecuting = false; }
internal void FromProto(object protoObj) { TransactDataP ap = protoObj as TransactDataP; if (ap != null) { ConmandId = (int)ap.ConmandID; AppId = ap.AppID; SdkVersion = ap.SdkVersion; CheckContent = ap.CheckContent; CheckSummary = ap.CheckSummary; if (!string.IsNullOrEmpty(ap.GetReq.Base.Transaction)) { Req = new GetMessageFromWX.Req(); Req.FromProto(ap.GetReq); } if (!string.IsNullOrEmpty(ap.AuthReq.Base.Transaction)) { Req = new SendAuth.Req(); Req.FromProto(ap.AuthReq); } if (!string.IsNullOrEmpty(ap.SendReq.Base.Transaction)) { Req = new SendMessageToWX.Req(); Req.FromProto(ap.SendReq); } if (!string.IsNullOrEmpty(ap.ShowReq.Base.Transaction)) { Req = new ShowMessageFromWX.Req(); Req.FromProto(ap.ShowReq); } if (!string.IsNullOrEmpty(ap.GetResp.Base.Transaction)) { Resp = new GetMessageFromWX.Resp(); Resp.FromProto(ap.GetResp); } if (!string.IsNullOrEmpty(ap.AuthResp.Base.Transaction)) { Resp = new SendAuth.Resp(); Resp.FromProto(ap.AuthResp); } if (!string.IsNullOrEmpty(ap.SendResp.Base.Transaction)) { Resp = new SendMessageToWX.Resp(); Resp.FromProto(ap.SendResp); } if (!string.IsNullOrEmpty(ap.ShowResp.Base.Transaction)) { Resp = new ShowMessageFromWX.Resp(); Resp.FromProto(ap.ShowResp); } if (!string.IsNullOrEmpty(ap.PayReq.Base.Transaction)) { Req = new SendPay.Req(); Req.FromProto(ap.PayReq); } if (!string.IsNullOrEmpty(ap.PayResp.Base.Transaction)) { Resp = new SendPay.Resp(); Resp.FromProto(ap.PayResp); } } }
public void share(string argsJSON) { var args = JsonHelper.Deserialize<string[]>(argsJSON); var options = JsonHelper.Deserialize<WeChatShareOptions>(args[0]); if (options == null) { dispatchResult(PluginResult.Status.JSON_EXCEPTION, ERR_INVALID_OPTIONS); return; } WXBaseMessage message = null; var messageOptions = options.message; if (messageOptions != null) { switch (messageOptions.type) { case WeChatShareType.app: break; case WeChatShareType.emotion: break; case WeChatShareType.file: break; case WeChatShareType.image: if (!String.IsNullOrEmpty(messageOptions.url)) { message = new WXImageMessage(messageOptions.url); } else if (!String.IsNullOrEmpty(messageOptions.data)) { message = new WXImageMessage(Convert.FromBase64String(messageOptions.data)); } else { dispatchResult(PluginResult.Status.ERROR, ERR_INVALID_OPTIONS); return; } break; case WeChatShareType.music: break; case WeChatShareType.video: break; case WeChatShareType.webpage: default: message = new WXWebpageMessage(messageOptions.url); break; } if (message == null) { dispatchResult(PluginResult.Status.ERROR, ERR_UNSUPPORTED_MEDIA_TYPE); return; } message.Title = messageOptions.title; message.Description = messageOptions.description; if (!String.IsNullOrEmpty(messageOptions.thumbData)) { message.ThumbData = Convert.FromBase64String(messageOptions.thumbData); } } else if (options.text != null) { message = new WXTextMessage(options.text); } else { dispatchResult(PluginResult.Status.ERROR, ERR_INVALID_OPTIONS); return; } var scene = options.scene; if (scene == null) { scene = WeChatScene.timeline; } try { var request = new SendMessageToWX.Req(message, (int)scene); api.SendReq(request); } catch (WXException e) { dispatchResult(PluginResult.Status.ERROR, e.Message); } }
/// <summary> /// 微信 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void Image_Tapped(object sender, TappedRoutedEventArgs e) { WXBaseMessage message = null; //如果豆瓣的信息不为空并且有图片时候,加载图文信息 所有的选择为用户选择 int scene = SendMessageToWX.Req.WXSceneChooseByUser; var data = this.DataContext as BookDetailModel; WXWebpageMessage msg = new WXWebpageMessage(); msg.Title = "嗨,我刚用西邮图书馆UWP分享" + "《" + data.Title + "》"; msg.Description = ""; msg.WebpageUrl = string.Format("http://lib.xiyoumobile.com/moreInfo.html?id={0}", data.Id); message = msg; if (data.DoubanInfo != null && data.DoubanInfo.Images != null) { ////如果有图片 msg.ThumbData = await GetImageDataAsync(data.DoubanInfo.Images.Small); //http://lib.xiyoumobile.com/moreInfo.html?id=01h009786 } //把数据发送给微信,数据错误或发送错误,会抛出WXException,调试时,可从WXException中得知是什么错误。 //发布应用时,可直接向用户提示错误,也可以根据自己实际需要定制错误的处理 try { SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI("wxc6b5d9b6c68e94d3"); await api.SendReq(req); } catch (WXException ex) { } }