一: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框架的一个借口,里面有可以使用的方法
转载请注明原文地址: https://ju.6miu.com/read-669121.html