//分享小程序 private void BtnProject_Click(object sender, EventArgs e) { //初始化一个WXMiniProgramObject对象,设置小程序url和ID WXMiniProgramObject miniProgram = new WXMiniProgramObject(); //低版本微信将打开url miniProgram.WebpageUrl = "http://www.qq.com"; //跳转的小程序原始ID miniProgram.UserName = "******"; //小程序的Path miniProgram.Path = ""; //设置WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(miniProgram); msg.Title = "小程序标题"; msg.Description = "小程序的描述"; //设置缩略图 Bitmap thumb = BitmapFactory.DecodeResource(Resources, Resource.Drawable.Icon); MemoryStream ms = new MemoryStream(); thumb.Compress(Bitmap.CompressFormat.Png, 0, ms); byte[] bytes = ms.ToArray(); msg.ThumbData = bytes; //构造一个Req对象 SendMessageToWX.Req req = new SendMessageToWX.Req(); req.Transaction = Guid.NewGuid().ToString(); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneTimeline; //发送数据 api.SendReq(req); }
private void goToShowMsg(ShowMessageFromWX.Req showReq) { WXMediaMessage wxMsg = showReq.Message; WXAppExtendObject obj = (WXAppExtendObject)wxMsg.MyMediaObject; // 组织一个待显示的消息内容 StringBuffer msg = new StringBuffer(); msg.Append("description: "); msg.Append(wxMsg.Description); msg.Append("\n"); msg.Append("extInfo: "); msg.Append(obj.ExtInfo); msg.Append("\n"); msg.Append("filePath: "); msg.Append(obj.FilePath); Intent intent = new Intent(this, typeof(ShowFromWXActivity)); intent.PutExtra(Configuration.ShowMsgActivity.STitle, wxMsg.Title); intent.PutExtra(Configuration.ShowMsgActivity.SMessage, msg.ToString()); //intent.PutExtra(Configuration.ShowMsgActivity.BAThumbData, wxMsg.ThumbData); StartActivity(intent); Finish(); }
//分享音乐类型 private void BtnMusic_Click(object sender, EventArgs e) { //初始化一个WXMusicObject对象,填写音乐地址 WXMusicObject musicObj = new WXMusicObject(); //音乐url musicObj.MusicUrl = "http://www.qq.com"; //设置WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.MyMediaObject = musicObj; msg.Title = "音乐标题"; msg.Description = "音乐描述"; //设置缩略图 Bitmap thumb = BitmapFactory.DecodeResource(Resources, Resource.Drawable.Icon); MemoryStream ms = new MemoryStream(); thumb.Compress(Bitmap.CompressFormat.Png, 0, ms); byte[] bytes = ms.ToArray(); msg.ThumbData = bytes; //构造一个Req SendMessageToWX.Req req = new SendMessageToWX.Req(); req.Transaction = Guid.NewGuid().ToString(); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneTimeline; //发送数据 api.SendReq(req); }
public bool SendImage(Android.Graphics.Bitmap bitmap, WXScene scene = 0) { if (bitmap == null) { throw new Exception("(Android.Graphics.Bitmap) bitmap is null"); } WXImageObject imgObj = new WXImageObject(bitmap); WXMediaMessage wxMediaMessage = new WXMediaMessage(); wxMediaMessage.MyMediaObject = imgObj; // 设置缩略图 int thumbSize = 150; // 150是根据官网demo设置 Android.Graphics.Bitmap thumbBmp = bitmap.ScaledBitmap(thumbSize, thumbSize, false); // 扩展方法 bitmap.Recycle(); wxMediaMessage.ThumbData = thumbBmp.ToArray(true); // 扩展方法 //构造一个Req请求 SendMessageToWX.Req req = new SendMessageToWX.Req(); //唯一的请求标志 req.Transaction = System.Guid.NewGuid().ToString(); req.Message = wxMediaMessage; // req.Scene = SendMessageToWX.Req.WXSceneSession; // 发送信息 // req.Scene = SendMessageToWX.Req.WXSceneTimeline; // 发送朋友圈 req.Scene = (int)scene; //发送数据 return(api.SendReq(req)); }
//分享图片类型 private void BtnImage_Click(object sender, EventArgs e) { Bitmap bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.Icon); //设置缩略图 Bitmap thumb = Bitmap.CreateScaledBitmap(bitmap, 50, 50, true); bitmap.Recycle(); MemoryStream ms = new MemoryStream(); thumb.Compress(Bitmap.CompressFormat.Png, 0, ms); byte[] bytes = ms.ToArray(); //初始化WXImageObject,设置分享的图片 WXImageObject imgObj = new WXImageObject(bitmap); //初始化WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.MyMediaObject = imgObj; msg.ThumbData = bytes; //构造一个Req请求 SendMessageToWX.Req req = new SendMessageToWX.Req(); req.Transaction = Guid.NewGuid().ToString(); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneSession; //发送数据 api.SendReq(req); }
//分享视频类型 private void BtnVideo_Click(object sender, EventArgs e) { //初始化一个WXVideoObject对象,填写视频url WXVideoObject videoObj = new WXVideoObject(); //视频地址 videoObj.VideoUrl = "https://www.qq.com"; //设置WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(videoObj); msg.Title = "测试视频"; msg.Description = "测试视频描述"; //设置缩略图 Bitmap thumb = BitmapFactory.DecodeResource(Resources, Resource.Drawable.Icon); MemoryStream ms = new MemoryStream(); thumb.Compress(Bitmap.CompressFormat.Png, 0, ms); byte[] bytes = ms.ToArray(); msg.ThumbData = bytes; //构造一个Req请求 SendMessageToWX.Req req = new SendMessageToWX.Req(); req.Transaction = Guid.NewGuid().ToString(); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneTimeline; //发送数据 api.SendReq(req); }
//分享图片 partial void UIButton12_TouchUpInside(UIButton sender) { try { //初始化一个WXImageObject对象,设置要分享的图片 WXImageObject imageObj = new WXImageObject(); NSData data = NSData.FromFile("icon.png"); imageObj.ImageData = data; //设置WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.SetThumbImage(UIImage.FromFile("icon.png")); msg.MediaObject = imageObj; //构造SendMessageToWXReq请求 SendMessageToWXReq req = new SendMessageToWXReq(); req.BText = false; req.Message = msg; req.Scene = (int)WXScene.Timeline; //发送数据 var result = WXApi.SendReq(req); UIAlertView alertView = new UIAlertView("", "分享结果:" + result, null, "取消"); alertView.Show(); } catch (Exception ex) { UIAlertView alertView = new UIAlertView("", "异常:" + ex, null, "取消"); alertView.Show(); } }
//分享网页 partial void UIButton5_TouchUpInside(UIButton sender) { try { WXMediaMessage msg = new WXMediaMessage(); msg.Title = "Xamarin官方网站"; msg.Description = "Xamarin官方网站的描述"; msg.SetThumbImage(UIImage.FromFile("icon.png")); WXWebpageObject webObj = new WXWebpageObject(); webObj.WebpageUrl = "https://www.xamarin.com"; msg.MediaObject = webObj; SendMessageToWXReq req = new SendMessageToWXReq(); req.BText = false; req.Message = msg; req.Scene = (int)WXScene.Timeline; var result = WXApi.SendReq(req); UIAlertView alertView = new UIAlertView("", "分享结果:" + result, null, "取消"); alertView.Show(); } catch (Exception ex) { UIAlertView alertView = new UIAlertView("", "异常:" + ex, null, "取消"); alertView.Show(); } }
/// <summary> /// 分享一段视频 /// </summary> /// <param name="videoUrl">音乐链接</param> /// <param name="isWXSceneTimeline">true:分享到朋友圈;false:分享给好友</param> /// <param name="showImgResId">链接显示的图标</param> /// <param name="title">别人看到的标题</param> /// <param name="description">别人看到的描述</param> /// <returns>无</returns> public void ShareVideo(string videoUrl, bool isWXSceneTimeline, int showImgResId, string title, string description) { WXVideoObject musciObj = new WXVideoObject(); musciObj.VideoUrl = videoUrl; WXMediaMessage msg = new WXMediaMessage(); msg.MyMediaObject = musciObj; msg.Title = title; msg.Description = description; Bitmap thumbBmp = BitmapFactory.DecodeResource(mContext.Resources, showImgResId); using (MemoryStream stream = new MemoryStream()) { thumbBmp.Compress(Bitmap.CompressFormat.Png, 100, stream); msg.ThumbData = stream.ToArray(); //设置缩略图 } SendMessageToWX.Req req = new SendMessageToWX.Req() { Transaction = buildTransaction("video"), Message = msg, Scene = isWXSceneTimeline ? WECHAT_SHARE_TYPE_FRENDS : WECHAT_SHARE_TYPE_TALK, }; mWXApi.SendReq(req); }
/// <summary> /// 分享一个网页 /// </summary> /// <param name="httpUrl">网页链接</param> /// <param name="isWXSceneTimeline">true:分享到朋友圈;false:分享给好友</param> /// <param name="icon">链接显示的图标</param> /// <param name="title">别人看到的标题</param> /// <param name="description">别人看到的描述</param> /// <returns>无</returns> public void ShareWebPage(string httpUrl, bool isWXSceneTimeline, Bitmap icon, string title, string description) { WXWebpageObject webpage = new WXWebpageObject() { WebpageUrl = httpUrl, }; WXMediaMessage msg = new WXMediaMessage(webpage) { Title = title, Description = description, }; using (MemoryStream stream = new MemoryStream()) { icon.Compress(Bitmap.CompressFormat.Png, 100, stream); msg.ThumbData = stream.ToArray(); //设置缩略图 } SendMessageToWX.Req req = new SendMessageToWX.Req() { Transaction = buildTransaction("webpage"), Message = msg, Scene = isWXSceneTimeline ? WECHAT_SHARE_TYPE_FRENDS : WECHAT_SHARE_TYPE_TALK, }; mWXApi.SendReq(req); }
private static void SendWXReqInner(String url, String title, String contentmsg, Bitmap bmp, int type) { SendMessageToWX.Req req; WXWebpageObject textObj = new WXWebpageObject(); textObj.WebpageUrl = url; WXMediaMessage msg = new WXMediaMessage(); msg.Title = title; msg.Description = contentmsg; if (bmp != null) { bmp = Bitmap.CreateScaledBitmap(bmp, 50, 50, true); } msg.MyEediaObject = textObj; req = new SendMessageToWX.Req(); req.Transaction = BuildTransaction("webpage"); req.Message = msg; if (type == 1) { req.Scene = SendMessageToWX.Req.WXSceneSession; } else { if (type == 0) { req.Scene = SendMessageToWX.Req.WXSceneTimeline; } } bool res = vipcompany.wxApi.SendReq(req); }
//分享视频 partial void UIButton11_TouchUpInside(UIButton sender) { try { //初始化一个WXVideoObject对象,设置分享视频的属性 WXVideoObject videoObj = new WXVideoObject(); videoObj.VideoUrl = "http://www.qq.com"; //设置WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.Title = "视频标题"; msg.Description = "视频描述"; msg.SetThumbImage(UIImage.FromFile("icon.png")); msg.MediaObject = videoObj; //构造SendMessageToWXReq请求 SendMessageToWXReq req = new SendMessageToWXReq(); req.BText = false; req.Message = msg; req.Scene = (int)WXScene.Timeline; //发送数据 var result = WXApi.SendReq(req); UIAlertView alertView = new UIAlertView("", "分享结果:" + result, null, "取消"); alertView.Show(); } catch (Exception ex) { UIAlertView alertView = new UIAlertView("", "异常:" + ex, null, "取消"); alertView.Show(); } }
//网页类型分享 private void BtnHtml_Click(object sender, EventArgs e) { WXWebpageObject webObj = new WXWebpageObject(); webObj.WebpageUrl = "https://www.xamarin.com/"; WXMediaMessage msg = new WXMediaMessage(webObj); msg.Title = "Xamarin官网"; msg.Description = "官方网站描述"; //分享的缩略图 Bitmap thumb = BitmapFactory.DecodeResource(this.Resources, Resource.Drawable.Icon); MemoryStream ms = new MemoryStream(); thumb.Compress(Bitmap.CompressFormat.Png, 0, ms); byte[] bytes = ms.ToArray(); //构造一个Req请求 SendMessageToWX.Req req = new SendMessageToWX.Req(); //唯一的请求标志 req.Transaction = System.Guid.NewGuid().ToString(); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneTimeline; //发送数据 api.SendReq(req); }
/// <summary> /// 分享 /// </summary> /// <param name="type">分享类型</param> /// <param name="msg">分享信息</param> /// <param name="scene">分享场景</param> /// <returns>是否发送成功,不等于分享成功</returns> private bool share(string type, WXMediaMessage msg, shareScene scene) { SendMessageToWX.Req req = new SendMessageToWX.Req(); req.Transaction = type; req.Message = msg; req.Scene = (int)scene; return(Api.SendReq(req)); }
/** * 处理微信向第三方应用发起的消息 * <p> * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享 * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信 * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作 * 回调。 * <p> * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast */ public void onShowMessageFromWXReq(WXMediaMessage msg) { if (msg != null && msg.Media != null && (msg.Media is WXAppExtendObject)) { WXAppExtendObject obj = (WXAppExtendObject)msg.Media; Toast.MakeText(this, obj.ExtInfo, ToastLength.Short).Show(); } }
/// <summary> /// 分享图片 /// </summary> /// <param name="bmp">图片</param> /// <param name="thumbnail">缩略图</param> /// <param name="thumbnailNeedRecycle">缩略图是否需要回收</param> /// <param name="scene">分享场景</param> /// <returns>是否发送成功,不等于分享成功</returns> public bool ShareImage(Bitmap bmp, Bitmap thumbnail, bool thumbnailNeedRecycle = true, shareScene scene = shareScene.WXSceneSession) { if (IsApi) { WXMediaMessage msg = new WXMediaMessage(new WXImageObject(bmp)); msg.ThumbData = bmpToByteArray(thumbnail, thumbnailNeedRecycle); share("img", msg, scene); } return(false); }
/// <summary> /// 分享文本 /// </summary> /// <param name="text">文本</param> /// <param name="description">描述</param> /// <param name="scene">分享场景</param> /// <returns>是否发送成功,不等于分享成功</returns> public bool Share(string text, string description = null, shareScene scene = shareScene.WXSceneSession) { if (IsApi) { WXMediaMessage msg = new WXMediaMessage(new WXTextObject(text)); msg.Description = description ?? text; return(share("text", msg, scene)); } return(false); }
/// <summary> /// 分享多媒体 /// </summary> /// <param name="type">分享类型</param> /// <param name="mediaObject">媒体信息</param> /// <param name="title">标题</param> /// <param name="description">描述</param> /// <param name="thumbnail">缩略图</param> /// <param name="thumbnailNeedRecycle">缩略图是否需要回收</param> /// <param name="scene">分享场景</param> /// <returns>是否发送成功,不等于分享成功</returns> private bool share(string type, WXMediaMessage.IMediaObject mediaObject, string title, string description, Bitmap thumbnail, bool thumbnailNeedRecycle, shareScene scene) { WXMediaMessage msg = new WXMediaMessage(mediaObject); msg.Title = title; msg.Description = description ?? string.Empty; if (thumbnail != null) { msg.ThumbData = bmpToByteArray(thumbnail, thumbnailNeedRecycle); } return(share(type, msg, scene)); }
protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); wxApi = WXAPIFactory.CreateWXAPI(this, APP_ID, true); wxApi.RegisterApp(APP_ID); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button>(Resource.Id.myButton); button.Click += delegate { if(wxApi.IsWXAppInstalled && wxApi.IsWXAppSupportAPI){ SendMessageToWX.Req req; WXWebpageObject textObj = new WXWebpageObject(); textObj.WebpageUrl = "http://lucazulian.it"; WXMediaMessage msg = new WXMediaMessage(); msg.Title = "Luca Zulian website"; msg.Description = "Hello xamarin from wechat"; msg.mediaObject = textObj; req = new SendMessageToWX.Req(); req.Transaction = BuildTransaction("webpage"); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneSession; bool res = MainActivity.wxApi.SendReq(req); if(res){ Console.WriteLine("successfully sent message"); } } else{ Toast.MakeText(this, "wxApi does not supported!", ToastLength.Long).Show(); } }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); wxApi = WXAPIFactory.CreateWXAPI(this, APP_ID, true); wxApi.RegisterApp(APP_ID); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById <Button>(Resource.Id.myButton); button.Click += delegate { if (wxApi.IsWXAppInstalled && wxApi.IsWXAppSupportAPI) { SendMessageToWX.Req req; WXWebpageObject textObj = new WXWebpageObject(); textObj.WebpageUrl = "http://lucazulian.it"; WXMediaMessage msg = new WXMediaMessage(); msg.Title = "Luca Zulian website"; msg.Description = "Hello xamarin from wechat"; msg.mediaObject = textObj; req = new SendMessageToWX.Req(); req.Transaction = BuildTransaction("webpage"); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneSession; bool res = MainActivity.wxApi.SendReq(req); if (res) { Console.WriteLine("successfully sent message"); } } else { Toast.MakeText(this, "wxApi does not supported!", ToastLength.Long).Show(); } }; }
/// <summary> /// 分享一段文字 /// </summary> /// <param name="shareContent">参数array注释</param> /// <param name="isWXSceneTimeline">true:分享到朋友圈;false:分享给好友</param> /// <returns>无</returns> public void ShareText(string shareContent, bool isWXSceneTimeline) { if (!TextUtils.IsEmpty(shareContent)) { WXTextObject textObj = new WXTextObject() { Text = shareContent, }; WXMediaMessage msg = new WXMediaMessage() { MyMediaObject = textObj, Description = shareContent, }; SendMessageToWX.Req req = new SendMessageToWX.Req() { Transaction = buildTransaction("text"), Message = msg, Scene = isWXSceneTimeline ? WECHAT_SHARE_TYPE_FRENDS : WECHAT_SHARE_TYPE_TALK, }; mWXApi.SendReq(req); } }
/// <summary> /// 分享一张图片 /// </summary> /// <param name="shareBitmap">网页链接</param> /// <param name="isWXSceneTimeline">true:分享到朋友圈;false:分享给好友</param> /// <returns>无</returns> public void ShareImage(Bitmap shareBitmap, bool isWXSceneTimeline) { WXImageObject imgObj = new WXImageObject(shareBitmap); WXMediaMessage msg = new WXMediaMessage(); msg.MyMediaObject = imgObj; Bitmap thumbBmp = Bitmap.CreateScaledBitmap(shareBitmap, THUMB_SIZE, THUMB_SIZE, true); using (MemoryStream stream = new MemoryStream()) { shareBitmap.Compress(Bitmap.CompressFormat.Png, 100, stream); msg.ThumbData = stream.ToArray(); //设置缩略图 } SendMessageToWX.Req req = new SendMessageToWX.Req() { Transaction = buildTransaction("img"), Message = msg, Scene = isWXSceneTimeline ? WECHAT_SHARE_TYPE_FRENDS : WECHAT_SHARE_TYPE_TALK, }; mWXApi.SendReq(req); }
//文字类型分享 private void BtnText_Click(object sender, EventArgs e) { //初始化一个WXTextObject对象,填写分享的文本内容 WXTextObject textObj = new WXTextObject(); textObj.Text = "Hello Xamarin"; //用WXTextObject对象初始化一个WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.MyMediaObject = textObj; msg.Description = "Hello World"; //构造一个Req请求 SendMessageToWX.Req req = new SendMessageToWX.Req(); //唯一的请求标志 req.Transaction = System.Guid.NewGuid().ToString(); req.Message = msg; req.Scene = SendMessageToWX.Req.WXSceneSession; //发送数据 api.SendReq(req); }
/// <summary> /// 分享文字信息 /// </summary> /// <param name="msg">显示在微信聊天记录的信息</param> /// <param name="description">显示在按[分享]时候的信息</param> /// <returns>返回记录</returns> public bool SendMsg(string msg, string description = "", WXScene scene = 0) { // 初始化一个 WXTextObject 对象,填写分享的文本内容 WXTextObject textObj = new WXTextObject(); textObj.Text = msg; // 用 WXTextObject 对象初始化一个 WXMediaMessage 对象 WXMediaMessage wxMediaMessage = new WXMediaMessage(); wxMediaMessage.MyMediaObject = textObj; wxMediaMessage.Description = description; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.Transaction = System.Guid.NewGuid().ToString(); // 唯一的请求标志 req.Message = wxMediaMessage; // req.Scene = SendMessageToWX.Req.WXSceneSession; // 发送信息 // req.Scene = SendMessageToWX.Req.WXSceneTimeline; // 发送朋友圈 req.Scene = (int)scene; return(api.SendReq(req)); }
protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; Resources.DisplayMetrics.ScaledDensity = 2;//告诉android不要把自己大小单位缩放 //double systemDensity = DeviceDisplay.MainDisplayInfo.Density; //Resources.DisplayMetrics.Density = (float)systemDensity / 2.55F; //var temp = Resources.DisplayMetrics; //var device = DeviceDisplay.MainDisplayInfo; App.ScreenWidth = Resources.DisplayMetrics.WidthPixels; App.ScreenHeight = Resources.DisplayMetrics.HeightPixels; if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat) { //透明状态栏 //Window.AddFlags(WindowManagerFlags.TranslucentStatus); Window.SetStatusBarColor(Android.Graphics.Color.LightGray); //不遮挡导航栏 Window.AddFlags(WindowManagerFlags.ForceNotFullscreen); } Rg.Plugins.Popup.Popup.Init(this, savedInstanceState); //弹出框 CarouselViewRenderer.Init(); //轮播图 CachedImageRenderer.Init(true); //支付宝 MessagingCenter.Subscribe <object, string>(this, "Pay", (sender, sign) => { try { //Func<string, string> test = Pay; //IAsyncResult asyncResult = test.BeginInvoke(sign, null, null); //string result = test.EndInvoke(asyncResult); // //Console.WriteLine(result); //Status = ""; Thread the = new Thread(new ParameterizedThreadStart(Pay)); the.Start(sign); //the.Join(); //Console.WriteLine(Pay(sign)); //Task<string> task = new Task<string>(async () => await Pay(sign)); //var result = await Pay(sign); //task.Wait(); //task.RunSynchronously(); //Console.WriteLine(result); //PayDelegate payDelegate = Pay; //Task<string> task = Task<string>.Factory.FromAsync(payDelegate.BeginInvoke(sign, Callback, "a delegate asynchronous call"), payDelegate.EndInvoke); //Task<string> task = Task<string>.Factory.FromAsync(payDelegate.BeginInvoke, payDelegate.EndInvoke, sign, "a delegate asynchronous call"); //task.ContinueWith(t => MessagingCenter.Send(new object(), "PaySuccess", t.Result)); } catch (ThreadAbortException) { MessagingCenter.Send(new object(), "PaySuccess", Status); } }); //微信相关 //注册 MessagingCenter.Subscribe <object>(this, "Register", d => { var result = RegToWx(); // MessagingCenter.Send(new object(), "Registered", result);//广播注册的结果 }); MessagingCenter.Subscribe <object>(this, "Login", d => { // send oauth request SendAuth.Req req = new SendAuth.Req(); req.Scope = "snsapi_userinfo"; req.State = "wechat_sdk_demo_test"; bool result = wxApi.SendReq(req); }); //分享小程序给朋友 MessagingCenter.Subscribe <object, string>(this, "ShareMiniProgramToFriend", (sender, arg) => { WXMiniProgramObject miniProgramObj = new WXMiniProgramObject(); miniProgramObj.WebpageUrl = "http://www.qq.com"; // 兼容低版本的网页链接 miniProgramObj.MiniprogramType = WXMiniProgramObject.MiniptogramTypeRelease; // 正式版:0,测试版:1,体验版:2 miniProgramObj.UserName = "******"; // 小程序原始id miniProgramObj.Path = "/pages/media"; //小程序页面路径;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar" WXMediaMessage msg = new WXMediaMessage(miniProgramObj); msg.Title = "小程序消息Title"; // 小程序消息title msg.Description = "小程序消息Desc"; // 小程序消息desc //msg.ThumbData = getThumb(); // 小程序消息封面图片,小于128k SendMessageToWX.Req req = new SendMessageToWX.Req { //Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneSession // 目前只支持会话 }; wxApi.SendReq(req); }); //分享文字给朋友 MessagingCenter.Subscribe <object, string>(this, "ShareToFriend", (sender, arg) => { WXTextObject textObj = new WXTextObject { Text = arg }; //定义wx文本对象 WXMediaMessage msg = new WXMediaMessage { MyMediaObject = textObj, Description = arg }; //定义wxmsg对象 SendMessageToWX.Req req = new SendMessageToWX.Req() { Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneSession//分享到对话 }; wxApi.SendReq(req); }); //分享文字到朋友圈 MessagingCenter.Subscribe <object, string>(this, "ShareToTimeline", (sender, arg) => { WXTextObject textObj = new WXTextObject { Text = arg }; //定义wx文本对象 WXMediaMessage msg = new WXMediaMessage { MyMediaObject = textObj, Description = arg }; //定义wxmsg对象 SendMessageToWX.Req req = new SendMessageToWX.Req() { Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneTimeline//分享到朋友圈 }; wxApi.SendReq(req); }); /* * //分享网页给朋友 * MessagingCenter.Subscribe<object, string>(this, "ShareToFriend", (sender, arg) => * { * //初始化一个WXWebpageObject,填写url * WXWebpageObject webpage = new WXWebpageObject(); * webpage.WebpageUrl = "网页url"; * * //用 WXWebpageObject 对象初始化一个 WXMediaMessage 对象 * WXMediaMessage msg = new WXMediaMessage(webpage); * msg.Title = "网页标题 "; * msg.Description = "网页描述"; * Bitmap thumbBmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); * msg.ThumbData = Util.bmpToByteArray(thumbBmp, true); * * //构造一个Req * SendMessageToWX.Req req = new SendMessageToWX.Req(); * req.Transaction = buildTransaction("webpage"); * req.Message = msg; * req.Scene = mTargetScene; * req.UserOpenId = getOpenId(); * * //调用api接口,发送数据到微信 * wxApi.sendReq(req); * });*/ base.OnCreate(savedInstanceState); Instance = this; Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle Forms.Init(this, savedInstanceState); LoadApplication(new App()); }
protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; //Resources.DisplayMetrics.ScaledDensity = 2;//告诉android不要把自己大小单位缩放 //double systemDensity = DeviceDisplay.MainDisplayInfo.Density; //Resources.DisplayMetrics.Density = 2; //var temp = Resources.DisplayMetrics; //var device = DeviceDisplay.MainDisplayInfo; //if (DeviceDisplay.MainDisplayInfo.Density >= 3) //{ // Resources.DisplayMetrics.ScaledDensity = 1.5F;//告诉android不要把自己大小单位缩放 // Resources.DisplayMetrics.Density = 2.5F; //} //else //{ // Resources.DisplayMetrics.ScaledDensity = 2;//告诉android不要把自己大小单位缩放 // Resources.DisplayMetrics.Density = 2; //} App.ScreenWidth = Resources.DisplayMetrics.WidthPixels; App.ScreenHeight = Resources.DisplayMetrics.HeightPixels; //var width = Resources.DisplayMetrics.WidthPixels; //var height = Resources.DisplayMetrics.HeightPixels; //var density = Resources.DisplayMetrics.Density; //屏幕密度 //App.ScreenWidth = width / density; //屏幕宽度 //App.ScreenHeight = height / density; //屏幕高度 含24个单位的标题栏高度 通过OnSizeAllocated获取的高度不含标题栏高度 if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat) { //透明状态栏 //Window.AddFlags(WindowManagerFlags.TranslucentStatus); Window.SetStatusBarColor(Android.Graphics.Color.LightGray); //不遮挡导航栏 Window.AddFlags(WindowManagerFlags.ForceNotFullscreen); } CrossCurrentActivity.Current.Init(this, savedInstanceState); Rg.Plugins.Popup.Popup.Init(this, savedInstanceState); //弹出框 CarouselViewRenderer.Init(); //轮播图 CachedImageRenderer.Init(true); //Forms.SetFlags("CarouselView_Experimental"); Forms.SetFlags("SwipeView_Experimental"); Plugin.XF.AppInstallHelper.CrossInstallHelper.Current.Init("com.wyhl.XMart.fileprovider"); /* #region X5内核 * preInitCallback = new PreInitCallback(); * tbsListener = new TbsListener(); * //加载X5内核 * QbSdk.DownloadWithoutWifi = true; * QbSdk.SetTbsListener(tbsListener); * QbSdk.InitX5Environment(this, preInitCallback); * MessagingCenter.Subscribe<object, string>(this, "PlayVideo", (o, url) => * { * TbsVideo.OpenVideo(this, url); * }); * MessagingCenter.Subscribe<object, string>(this, "OpenFile", async (o, file) => * { * var backingFile = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), file); * if (System.IO.File.Exists(backingFile) == false) * { * using (var stream = Assets.Open(file)) * { * using (var newStream = System.IO.File.Create(backingFile)) * { * await stream.CopyToAsync(newStream); * } * } * } * var openResult = QbSdk.OpenFileReader(this, backingFile, null, new ValueCallback()); * }); #endregion */ //支付宝 MessagingCenter.Subscribe <object, string>(this, "Pay", (sender, sign) => { try { Thread the = new Thread(new ParameterizedThreadStart(Pay)); the.Start(sign); } catch (ThreadAbortException) { } }); #region 微信相关 //注册 MessagingCenter.Subscribe <object>(this, "Register", d => { var result = RegToWx(); }); MessagingCenter.Subscribe <object>(this, "Login", d => { // send oauth request SendAuth.Req req = new SendAuth.Req() { Scope = "snsapi_userinfo", State = "xmart_wechat_login" }; bool result = wxApi.SendReq(req); }); //分享小程序给朋友 MessagingCenter.Subscribe <object, string>(this, "ShareMiniProgramToFriend", (sender, arg) => { string[] args = arg.Split(','); WXMiniProgramObject miniProgramObj = new WXMiniProgramObject { WebpageUrl = "https://www.qq.com", // 兼容低版本的网页链接 MiniprogramType = WXMiniProgramObject.MiniprogramTypePreview, // 正式版:0,测试版:1,体验版:2 UserName = "******", // 小程序原始id Path = "/pages/detail/detail?productId=" + args[0] + "&shareId=" + args[1] //小程序页面路径;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar" }; WXMediaMessage msg = new WXMediaMessage(miniProgramObj) { Title = args[2] + "-美而好,让生活更美好。", // 小程序消息title Description = "这是美而好的简介" // 小程序消息desc }; Stream s = Resources.OpenRawResource(Resource.Drawable.logo); Bitmap mBitmap = BitmapFactory.DecodeStream(s); msg.SetThumbImage(mBitmap); SendMessageToWX.Req req = new SendMessageToWX.Req { Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneSession // 目前只支持会话 }; wxApi.SendReq(req); //br.Dispose(); //s.Dispose(); }); //分享文字给朋友 /* * MessagingCenter.Subscribe<object, string>(this, "ShareToFriend", (sender, arg) => * { * WXTextObject textObj = new WXTextObject { Text = arg };//定义wx文本对象 * WXMediaMessage msg = new WXMediaMessage { MyMediaObject = textObj, Description = arg };//定义wxmsg对象 * SendMessageToWX.Req req = new SendMessageToWX.Req() * { * Transaction = DateTime.Now.ToFileTimeUtc().ToString(), * Message = msg, * Scene = SendMessageToWX.Req.WXSceneSession//分享到对话 * }; * wxApi.SendReq(req); * }); * * //分享文字到朋友圈 * MessagingCenter.Subscribe<object, string>(this, "ShareTextToTimeline", (sender, arg) => * { * WXTextObject textObj = new WXTextObject { Text = arg };//定义wx文本对象 * WXMediaMessage msg = new WXMediaMessage { MyMediaObject = textObj, Description = arg };//定义wxmsg对象 * SendMessageToWX.Req req = new SendMessageToWX.Req() * { * Transaction = DateTime.Now.ToFileTimeUtc().ToString(), * Message = msg, * Scene = SendMessageToWX.Req.WXSceneTimeline//分享到朋友圈 * }; * wxApi.SendReq(req); * }); * * //分享网页到朋友圈 * MessagingCenter.Subscribe<object, string>(this, "ShareWebPageToTimeline", (sender, arg) => * { * //初始化一个WXWebpageObject,填写url * WXWebpageObject webpage = new WXWebpageObject * { * WebpageUrl = arg * }; * * //用 WXWebpageObject 对象初始化一个 WXMediaMessage 对象 * WXMediaMessage msg = new WXMediaMessage(webpage) * { * Title = "万联家具批发平台", * Description = "网页描述" * }; * Stream s = Resources.OpenRawResource(Resource.Drawable.logo); * Bitmap mBitmap = BitmapFactory.DecodeStream(s); * msg.SetThumbImage(mBitmap); * * //构造一个Req * SendMessageToWX.Req req = new SendMessageToWX.Req * { * Transaction = DateTime.Now.ToFileTimeUtc().ToString(), * Message = msg, * Scene = SendMessageToWX.Req.WXSceneTimeline, * UserOpenId = getOpenId() * }; * * //调用api接口,发送数据到微信 * wxApi.SendReq(req); * });*/ #endregion base.OnCreate(savedInstanceState); Instance = this; Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle Forms.Init(this, savedInstanceState); LoadApplication(new App()); }
protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); MessagingCenter.Subscribe <object>(this, PubSubMessage.Register, d => { var result = RegToWx(); MessagingCenter.Send(new object(), PubSubMessage.Registered, result); }); MessagingCenter.Subscribe <object>(this, PubSubMessage.ShareToFriend, d => { var text = "这是Xamarin发送到微信朋友的消息!"; //初始化一个 WXTextObject 对象,填写分享的文本内容 var textObj = new WXTextObject { Text = text }; //用 WXTextObject 对象初始化一个 WXMediaMessage 对象 var msg = new WXMediaMessage { TheMediaObject = textObj, Description = text }; var req = new SendMessageToWX.Req() { Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneSession//分享到对话 }; //调用api接口,发送数据到微信 wxApi.SendReq(req); }); MessagingCenter.Subscribe <object>(this, PubSubMessage.ShareToFavourite, d => { var text = "这是Xamarin发送到微信收藏的消息!"; //初始化一个 WXTextObject 对象,填写分享的文本内容 var textObj = new WXTextObject { Text = text }; //用 WXTextObject 对象初始化一个 WXMediaMessage 对象 var msg = new WXMediaMessage { TheMediaObject = textObj, Description = text }; var req = new SendMessageToWX.Req() { Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneFavorite//分享到收藏 }; //调用api接口,发送数据到微信 wxApi.SendReq(req); }); MessagingCenter.Subscribe <object>(this, PubSubMessage.ShareToTimeline, d => { var text = "这是Xamarin发送到微信朋友圈的消息!"; //初始化一个 WXTextObject 对象,填写分享的文本内容 var textObj = new WXTextObject { Text = text }; //用 WXTextObject 对象初始化一个 WXMediaMessage 对象 var msg = new WXMediaMessage { TheMediaObject = textObj, Description = text }; var req = new SendMessageToWX.Req() { Transaction = DateTime.Now.ToFileTimeUtc().ToString(), Message = msg, Scene = SendMessageToWX.Req.WXSceneTimeline//分享到朋友圈 }; //调用api接口,发送数据到微信 wxApi.SendReq(req); }); //var wxBroadcastReceiver = new WxBroadcastReceiver(wxApi, appId); //RegisterReceiver(wxBroadcastReceiver, new IntentFilter(ConstantsAPI.ActionRefreshWxapp)); LoadApplication(new App()); }
/** * 处理微信发出的向第三方应用请求app message * <p> * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中 * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可 * 做点其他的事情,包括根本不打开任何页面 */ public void onGetMessageFromWXReq(WXMediaMessage msg) { Intent iLaunchMyself = PackageManager.GetLaunchIntentForPackage(PackageName); StartActivity(iLaunchMyself); }