IMvxMessenger
来源:互联网 发布:摄氏 华氏 转换vb 编程 编辑:程序博客网 时间:2024/06/02 01:33
一:view
1.private IMvxMessenger _messenger = Mvx.Resolve<IMvxMessenger> ();2._versionUpDialogToken = _messenger.SubscribeOnMainThread<ShowVersionUpDialogMessage> (ShowVersionUpDialog);
3.void ShowVersionUpDialog (ShowVersionUpDialogMessage message) { UIAlertView alert = new UIAlertView (message.Title, message.Message, null, null, new string[] { "OK" }); alert.Clicked += (s, b) => { NSUrl url = NSUrl.FromString (APP_STORE_URL); UIApplication.SharedApplication.OpenUrl (url); SplashViewModel.DownloadVersion (); }; alert.Show (); }
4.public override void ViewWillDisappear (bool animated) { base.ViewWillDisappear (animated); if (_versionUpDialogToken != null) { _messenger.Unsubscribe<ShowVersionUpDialogMessage> (_versionUpDialogToken); } }
二:viewModel
符合条件时:{_messenger.Publish (new ShowVersionUpDialogMessage (this, null, null));
}
三:Message类
using System;using Cirrious.MvvmCross.Plugins.Messenger;namespace BoshiAuthorize.Core.ViewModels{ /// 强制版本升级 public class ShowVersionUpDialogMessage : MvxMessage { public string Title { get; set; } public string Message { get; set; } public ShowVersionUpDialogMessage (object sender, string title, string message) : base (sender) { if (title != null) { Title = title; } else { Title = "バージョンアップのお願い"; } if (message != null) { Message = message; } else { Message = "お使いのアプリはバージョンアップが必要です。; } } }}
本质是一个MVVMCross框架的一个借口,里面有可以使用的方法
0 0