/// <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); }
internal static WXBaseMessage CreateMessage(int type) { WXBaseMessage result = null; switch (type) { case 1: result = new WXTextMessage(); break; case 2: result = new WXImageMessage(); break; case 3: result = new WXMusicMessage(); break; case 4: result = new WXVideoMessage(); break; case 5: result = new WXWebpageMessage(); break; case 6: result = new WXFileMessage(); break; case 7: result = new WXAppExtendMessage(); break; case 8: result = new WXEmojiMessage(); break; } return(result); }
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 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; }
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) { } }