Пример #1
0
        //分享小程序
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
        //分享音乐类型
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        //分享图片类型
        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);
        }
Пример #6
0
        //分享视频类型
        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);
        }
Пример #7
0
        //分享图片
        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();
            }
        }
Пример #8
0
        //分享网页
        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();
            }
        }
Пример #9
0
        /// <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);
        }
Пример #10
0
        /// <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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        //分享视频
        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();
            }
        }
Пример #13
0
        //网页类型分享
        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);
        }
Пример #14
0
 /// <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));
 }
Пример #15
0
 /**
  * 处理微信向第三方应用发起的消息
  * <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();
     }
 }
Пример #16
0
 /// <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);
 }
Пример #17
0
 /// <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);
 }
Пример #18
0
        /// <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));
        }
Пример #19
0
		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();
				}

			};

		}
Пример #20
0
        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();
                }
            };
        }
Пример #21
0
 /// <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);
     }
 }
Пример #22
0
        /// <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);
        }
Пример #23
0
        //文字类型分享
        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);
        }
Пример #24
0
        /// <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));
        }
Пример #25
0
        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());
        }
Пример #26
0
        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());
        }
Пример #28
0
        /**
         * 处理微信发出的向第三方应用请求app message
         * <p>
         * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中
         * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可
         * 做点其他的事情,包括根本不打开任何页面
         */
        public void onGetMessageFromWXReq(WXMediaMessage msg)
        {
            Intent iLaunchMyself = PackageManager.GetLaunchIntentForPackage(PackageName);

            StartActivity(iLaunchMyself);
        }