/// <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); } }
//文字类型分享 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; 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()); }
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()); }