//分享小程序 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); }
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; 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()); }