//发送授权请求的处理函数,SDK1.0暂不支持,可忽略
        private void btnAuth_Click(object sender, RoutedEventArgs e)
        {
            string AppID = ConstString.APPID;

            SendAuth.Req req = new SendAuth.Req(ConstString.SCOPE, ConstString.STATE);

            IWXAPI api = WXAPIFactory.CreateWXAPI(AppID);

            api.SendReq(req);
        }
Exemple #2
0
 public async void WeChatAuth(Frame frame)
 {
     frame.Navigate(typeof(AuthPage), this.WeChat);
     currentFrame = new WeakReference <Frame>(frame);
     if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")
     {
         var req     = new SendAuth.Req("snsapi_userinfo", "wechat");
         var api     = WXAPIFactory.CreateWXAPI("wx2d00f7c30f52d4aa");
         var isValid = await api.SendReq(req);
     }
 }
Exemple #3
0
 /// <summary>
 /// 授权登录
 /// </summary>
 public static async void Login()
 {
     try
     {
         SendAuth.Req req     = new SendAuth.Req("", "test");
         IWXAPI       api     = WXAPIFactory.CreateWXAPI(APP_ID);
         var          isValid = await api.SendReq(req);
     }
     catch (WXException ex)
     {
         Debug.WriteLine(ex.Message);
     }
 }
Exemple #4
0
        public async void SendAuth()
        {
            try
            {
                SendAuth.Req req = new SendAuth.Req(AppSettings.Scope, "test");

                IWXAPI api     = WXAPIFactory.CreateWXAPI(AppSettings.AppId);
                var    isValid = await api.SendReqAsync(req);
            }
            catch (WXException ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
        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());
        }
        private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                try
                {
                    SendAuth.Req req = new SendAuth.Req("[YOUR SCOPE]", "test");

                    IWXAPI api  = WXAPIFactory.CreateWXAPI("[YOUR APP ID]");
                    var    isok = await api.SendReq(req);
                }
                catch (WXException)
                {
                }

                //int scene = SendMessageToWX.Req.WXSceneTimeline; //发给微信朋友

                //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 = "title",
                //        Description = "desc",
                //        ThumbData = pic
                //    };

                //    try
                //    {
                //        SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene);
                //        IWXAPI api = WXAPIFactory.CreateWXAPI("[YOUR APP ID]");
                //        var isok = await api.SendReq(req);
                //    }
                //    catch (WXException)
                //    {
                //    }
                //}

                //var message = new WXTextMessage();
                //message.Title = "flora";
                //message.Text = "这是一段文本内容";
                //message.ThumbData = null;
                //SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene);
                //IWXAPI api = WXAPIFactory.CreateWXAPI("[YOUR APP ID]");
                //var isok = await api.SendReq(req);

                //WXImageMessage message = new WXImageMessage();
                //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);
                //    message.Title = "tupian";
                //    message.Description = "desc";
                //    message.ThumbData = pic;
                //    message.ImageUrl = "http://tp3.sinaimg.cn/1882347990/180/5725518284/1";

                //    try
                //    {
                //        SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene);
                //        IWXAPI api = WXAPIFactory.CreateWXAPI("[YOUR APP ID]");
                //        var isok = await api.SendReq(req);
                //    }
                //    catch (WXException)
                //    {
                //    }
                //}
            }
            catch (Exception ex)
            {
                //new MessageDialog(ex.Message).ShowAsync();
            }
        }
        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());
        }