非同寻常 windows phone (5) – Chooser(选择器)

事先写了千篇一律篇稿子《像做发布会那样做产品》,文中主要写通过特有以产品中的魅力需求来增进用户满意度,达到口碑宣传之功力。而今日描绘的文章和之类似,主要来写产品设计中的经对用户以状况的知道,将成品功效相互连接进行自然过渡,达到舒适的效益,在成功某些特定桥接的同时,兼顾人文关怀。

[索引页]
[源码下载]

先是了解下用户场景:

独特 windows phone (5) – Chooser(选择器)

用户场景的叙述实际上是在结构一个完好无损的经过。一个光景中含有了哟人,在啊状态下,遇到了呀问题,他们如何操作,他们得什么反馈。

所以一个套路来表示,具体描述如下:

“在某时间(when),某某地点(where),周围出现了几许事物时(with
what),特定类型的用户(who)萌发了某种欲望(desire),会想到通过某种手段(method)来满足私欲。”

when,where,with what这几接触信息实际统一地叙述了急需有的条件。

于这些环境信息可以分析产生诱导需求的条件及需有时之条件条件。

作者:webabcd

用户场景主要用于判断需求的存必要性,深刻理解产品需要,深入考虑用户是何许以产品之。用户以产品来哪路和当这些途径上之实在行使状况是哪的。哪些是青出于蓝场景,哪些是死现象,在各场景下用户目标是什么样的,他们产生怎么样的需要,哪些是高要求,哪些是死亡需求……

介绍
非同寻常 windows phone 7.5 (sdk 7.1) 之选择器

正文只要关注通过对用户以状况的了解来优化产品设计,让产品设计过渡自然,富有感情。而成就这些必须对产品流程、用户目标足够熟悉,同时针对用户思维呢不无了解。

  • AddressChooserTask – 选择联系人的地点
  • EmailAddressChooserTask – 选择联系人之email
  • PhoneNumberChooserTask – 选择联系人的对讲机
  • SaveContactTask – 保存联系方式
  • SaveEmailAddressTask – 保存电子邮件地址
  • SavePhoneNumberTask – 保存电话号码
  • SaveRingtoneTask – 保存铃声
  • PhotoChooserTask – 从图库里挑选像
  • CameraCaptureTask – 相机照
  • GameInviteTask – 游戏邀请(邀请其他人加入自己的打会话)

场景1、金山词霸的默认检测剪贴板

示例
1、AddressChooserTask 的 Demo
AddressChooserTask.xaml.cs

金山词霸

/*
 * AddressChooserTask - 选择联系人的地址
 *     Completed - 选中地址之后所执行的事件
 *     Show() - 显示联系人列表
 * 
 * TaskResult - 用户选择后的结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 *     
 * AddressResult - Completed 事件的事件参数
 *     DisplayName - 联系人名称
 *     Address - 联系人的地址
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class AddressChooserTaskDemo : PhoneApplicationPage
    {
        private AddressChooserTask _addressChooserTask;

        public AddressChooserTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _addressChooserTask = new AddressChooserTask();
            _addressChooserTask.Completed += new EventHandler<AddressResult>(_addressChooserTask_Completed);

            try
            {
                _addressChooserTask.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _addressChooserTask_Completed(object sender, AddressResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                MessageBox.Show("“" + e.DisplayName + "”的地址是:" + e.Address);
            }
        }
    }
}

打开金山词霸后,如果其检测及网剪贴板有贴内容(且为英文),会活动提醒已检测及公复制了以下内容,询问是勿是使点击翻译。这点成效于出中连无碍事,但是不少查看才词之软件都没立刻点,大多是当开拓之后,在输入框粘贴刚才由另外地方复制到的英文单词,从流水线达到麻烦一个手续。

 

浅析用户以状况(前几上我之真场景):

2、EmailAddressChooserTask 的 Demo
EmailAddressChooserTask.xaml.cs

when:  xxxxxxxxxxxx

/*
 * EmailAddressChooserTask - 选择联系人的email
 *     Completed - 选中email之后所执行的事件
 *     Show() - 显示联系人列表
 *     
 * TaskResult - 用户选择后的结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 *     
 * EmailResult - Completed 事件的事件参数
 *     DisplayName - 联系人名称
 *     Email - 联系人的email
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class EmailAddressChooserTaskDemo : PhoneApplicationPage
    {
        private EmailAddressChooserTask _emailAddressChooserTask;

        public EmailAddressChooserTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _emailAddressChooserTask = new EmailAddressChooserTask();
            _emailAddressChooserTask.Completed += new EventHandler<EmailResult>(_emailAddressChooserTask_Completed);

            try
            {
                _emailAddressChooserTask.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _emailAddressChooserTask_Completed(object sender, EmailResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                MessageBox.Show("“" + e.DisplayName + "”的email是:" + e.Email);
            }
        }
    }
}

who:   xxxxx

 

where:xxxxxx

3、PhoneNumberChooserTask 的 Demo
PhoneNumberChooserTask.xaml.cs

with
what:  手机浏览A软件时,遇到了一个免认的单词,且该软件无从带翻译功能

/*
 * PhoneNumberChooserTask - 选择联系人的电话
 *     Completed - 选中电话之后所执行的事件
 *     Show() - 显示联系人列表
 *     
 * TaskResult - 用户选择后的结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 *     
 * PhoneNumberResult - Completed 事件的事件参数
 *     DisplayName - 联系人名称
 *     PhoneNumber - 联系人的电话
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class PhoneNumberChooserTaskDemo : PhoneApplicationPage
    {
        private PhoneNumberChooserTask _phoneNumberChooserTask;

        public PhoneNumberChooserTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _phoneNumberChooserTask = new PhoneNumberChooserTask();
            _phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(_phoneNumberChooserTask_Completed);

            try
            {
                _phoneNumberChooserTask.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                MessageBox.Show("“" + e.DisplayName + "”的电话号码是:" + e.PhoneNumber);
            }
        }
    }
}

desire: 想要开辟一个B软件查询单词意思

 

method:先以A软件面临复制单词,准备开拓B软件粘贴到文字框进行询问

4、SaveContactTask 的 Demo
SaveContactTask.xaml.cs

是是自我的实事求是状况,当时我按手下充斥了几乎独词典类的app,当打开金山词霸的时节,发现他曾经检测到了自复制的单词,无需自身贴,点击即可查询,当时有些发激动。因为它们对运词典的流水线发生一个很清楚的认,一般用户都是于其他软件复制单词到词霸中,并贴,在不少情景以颠簸的公交车上,每一样不成操作都对准用户来说成本大死,那么其就一直去检测你是网内存中发出无复制了的英文内容,猜测这是您想询问的单词,在浓缩了操作步骤的情景下,充满人性关怀。

/*
 * SaveContactTask - 保存联系方式
 *     Completed - 完成保存操作(成功、取消、失败)之后所执行的事件
 *     FirstName, MiddleName, LastName, Nickname, HomeAddressCity, HomeAddressCountry, HomeAddressState, HomeAddressStreet, HomeAddressZipCode, HomePhone, WorkAddressCity, WorkAddressCountry, WorkAddressState, WorkAddressStreet, WorkAddressZipCode, WorkEmail, WorkPhone, Suffix, Title, Website, JobTitle, Company, MobilePhone, PersonalEmail, OtherEmail, Notes
 *     Show() - 显示用于保存联系方式的窗口
 * 
 * TaskResult - 任务结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class SaveContactTaskDemo : PhoneApplicationPage
    {
        private SaveContactTask _saveContactTask;

        public SaveContactTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _saveContactTask = new SaveContactTask();
            _saveContactTask.Completed += new EventHandler<SaveContactResult>(_saveContactTask_Completed);

            try
            {
                _saveContactTask.FirstName = "web";
                _saveContactTask.LastName = "abcd";
                _saveContactTask.MobilePhone = "11111111111";

                _saveContactTask.Show();
            }
            catch (System.InvalidOperationException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _saveContactTask_Completed(object sender, SaveContactResult e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    MessageBox.Show("保存成功");
                    break;

                case TaskResult.Cancel:
                    MessageBox.Show("取消保存");
                    break;

                case TaskResult.None:
                    MessageBox.Show("无法保存");
                    break;
            }
        }
    }
}

(注:最早我以学人机交互的时节,重点强调的凡抽用户操作成本,不过个人感觉现在基本上交互设计感稍微偏离了实质,越来越像UI设计,朝着越炫、越酷的势头前行,这个有点近的职能,让自己回忆了人机交互最该关注之接触。)

 

场景2、新浪微博之下拉刷新-没有重新多内容-询问是不是前往热门话题

5、SaveEmailAddressTask 的 Demo
SaveEmailAddressTask.xaml.cs

刷新微博

/*
 * SaveEmailAddressTask - 保存电子邮件地址
 *     Completed - 完成保存操作(成功、取消、失败)之后所执行的事件
 *     Email - 需要保存的电子邮件地址
 *     Show() - 显示用于保存电子邮件地址的窗口
 * 
 * TaskResult - 任务结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class SaveEmailAddressTaskDemo : PhoneApplicationPage
    {
        private SaveEmailAddressTask _saveEmailAddressTask;

        public SaveEmailAddressTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _saveEmailAddressTask = new SaveEmailAddressTask();
            _saveEmailAddressTask.Completed += new EventHandler<TaskEventArgs>(_saveEmailAddressTask_Completed);

            try
            {
                _saveEmailAddressTask.Email = "a@b.c";

                _saveEmailAddressTask.Show();
            }
            catch (System.InvalidOperationException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _saveEmailAddressTask_Completed(object sender, TaskEventArgs e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    MessageBox.Show("保存成功");
                    break;

                case TaskResult.Cancel:
                    MessageBox.Show("取消保存");
                    break;

                case TaskResult.None:
                    MessageBox.Show("无法保存");
                    break;
            }
        }
    }
}

以首页下拉刷新时,如果没有更新的内容,一般app会弹出一个toast框提示【没有再多内容】,而新浪微博会首先弹有【你或许去之均等长条热门微博】同时唤起您失去看好微博玩玩。

 

同理这个得与方面一样进行用户场景分析:

6、SavePhoneNumberTask 的 Demo
SavePhoneNumberTask.xaml.cs

用户以下拉刷新为method,本质之desire是得新的内容,以成就消磨时光之欲望。当没有更新的情的下,我们可由此任何方式好用户的desire,比如被他时的香微博或极端热之嘲笑段子,这样一来可以辅助用户就他的desire,二来可以帮忙产品的别样职能进行引流,照顾要加重某些意义权重;三来受用户感到产品十分有性灵、很理解用户。

/*
 * SavePhoneNumberTask - 保存电话号码
 *     Completed - 完成保存操作(成功、取消、失败)之后所执行的事件
 *     PhoneNumber - 需要保存的电话号码
 *     Show() - 显示用于保存电话号码的窗口
 * 
 * TaskResult - 任务结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class SavePhoneNumberTaskDemo : PhoneApplicationPage
    {
        private SavePhoneNumberTask _savePhoneNumberTask;

        public SavePhoneNumberTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _savePhoneNumberTask = new SavePhoneNumberTask();
            _savePhoneNumberTask.Completed += new EventHandler<TaskEventArgs>(_savePhoneNumberTask_Completed);

            try
            {
                _savePhoneNumberTask.PhoneNumber = "11111111111";

                _savePhoneNumberTask.Show();
            }
            catch (System.InvalidOperationException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _savePhoneNumberTask_Completed(object sender, TaskEventArgs e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    MessageBox.Show("保存成功");
                    break;

                case TaskResult.Cancel:
                    MessageBox.Show("取消保存");
                    break;

                case TaskResult.None:
                    MessageBox.Show("无法保存");
                    break;
            }
        }
    }
}

场景3、Google主页的断网状态-游戏模式

 

google页恐龙彩蛋

7、SaveRingtoneTask 的 Demo
SaveRingtoneTask.xaml.cs

同等为是一个实在的场面,前日铺面停网,因为断网很多干活未可知展开,程序员同事呢是这般(技术性休息),百形似无聊坐等来网,突然发现一侧一个弟兄玩自了google首页的恐龙游戏,围观了好多别同事,请见谅我啊是第一差才知道原来可以这样。

/*
 * SaveRingtoneTask - 保存铃声
 *     Completed - 保存铃声之后所执行的事件
 *     Source - 铃声文件的地址
 *     IsShareable - 指示该铃声是否可被其他应用程序访问
 *     DisplayName - 铃声的名称(显示用)
 *     Show() - 显示保存铃声窗口
 * 
 * TaskResult - 任务结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class SaveRingtoneTaskDemo : PhoneApplicationPage
    {
        private SaveRingtoneTask _saveRingtoneChooser;

        public SaveRingtoneTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _saveRingtoneChooser = new SaveRingtoneTask();
            _saveRingtoneChooser.Completed += new EventHandler<TaskEventArgs>(_saveRingtoneChooser_Completed);

            try
            {
                _saveRingtoneChooser.Source = new Uri("appdata:/Assets/SuperMario.mp3"); // appdata: 代表程序包内
                // saveRingtoneChooser.Source = new Uri("isostore:/myTone.mp3"); // isostore: 代表独立存储
                // _saveRingtoneChooser.Source = new Uri("http://a.b.c/d.mp3"); // 网络地址
                _saveRingtoneChooser.IsShareable = true;

                _saveRingtoneChooser.DisplayName = "超级马里奥铃声";

                _saveRingtoneChooser.Show();
            }
            catch (System.InvalidOperationException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _saveRingtoneChooser_Completed(object sender, TaskEventArgs e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    MessageBox.Show("保存成功");
                    break;

                case TaskResult.Cancel:
                    MessageBox.Show("取消保存");
                    break;

                case TaskResult.None:
                    MessageBox.Show("无法保存");
                    break;
            }
        }
    }
}

观分析(省略 who where when):

 

with what:  上班时段突然内公司断网,一直刷新google首页看是否健康

8、PhotoChooserTask 的 Demo
PhotoChooserTask.xaml.cs

desire: 在等待的经过被,找点事情打发时间,但是非克于业主发现偷懒

/*
 * PhotoChooserTask - 从图库里选择照片
 *     Completed - 选中照片之后所执行的事件
 *     Show() - 显示图库
 * 
 * TaskResult - 任务结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 *     
 * PhotoResult - Completed 事件的事件参数
 *     ChosenPhoto - 照片数据(System.IO.Stream 类型)
 *     OriginalFileName - 照片的文件名
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class PhotoChooserTaskDemo : PhoneApplicationPage
    {
        private PhotoChooserTask _photoChooserTask;

        public PhotoChooserTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _photoChooserTask = new PhotoChooserTask();
            _photoChooserTask.Completed += new EventHandler<PhotoResult>(_photoChooserTask_Completed);

            try
            {
                _photoChooserTask.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _photoChooserTask_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
                bmp.SetSource(e.ChosenPhoto);
                img.Source = bmp;
            }
        }
    }
}

method:找有躲藏的娱乐活动

 

巧为大家熟悉,www.baidu.com是一个大家用来测量网络是否健康的一个兴工具,任何时刻要有人(不管是小白还是大神)要惦记明白好网络是否通畅,大多时是看百度的主页,如果会刷出内容则证实网络通畅。可以猜测google在异国也来这项荣誉的沉重,就算当境内,断网的下,我们为会见透过翻google来打探情况,而于这个等待或说颇的进程被,如果起啊工作能够消遣并时时救助第一时间了解状态那就再好不过,最好之法就是当google的断网页面就,于是google用小游戏来进行联网,会受匆忙等待的用户更换注意力,但老留于google首页,相当聪明。

9、CameraCaptureTask 的 Demo
CameraCaptureTask.xaml.cs

场景4、超越iRate的褒贬方案

/*
 * CameraCaptureTask - 相机拍照
 *     Completed - 拍照并确认之后所执行的事件
 *     Show() - 启动相机
 * 
 * TaskResult - 任务结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 *     
 * PhotoResult - Completed 事件的事件参数
 *     ChosenPhoto - 照片数据(System.IO.Stream 类型)
 *     OriginalFileName - 照片的文件名
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class CameraCaptureTaskDemo : PhoneApplicationPage
    {
        private CameraCaptureTask _cameraCaptureTask;

        public CameraCaptureTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _cameraCaptureTask = new CameraCaptureTask();
            _cameraCaptureTask.Completed += new EventHandler<PhotoResult>(_cameraCaptureTask_Completed);

            try
            {
                _cameraCaptureTask.Show();
            }
            catch (System.InvalidOperationException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _cameraCaptureTask_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
                bmp.SetSource(e.ChosenPhoto);
                img.Source = bmp;
            }
        }
    }
}

各种要好评

 

先说说iRate是啊?iRate是现大面积在动的一个开源之用户评分sdk,iRate可以判:『在第几糟糕打开客户端的时节,载入完成客户端后显得这去评分的弹窗】(当然还有许多其它的不二法门)本质是用iRate中一段时间内第几次于打开app来判定该用户是勿是活泼用户,然后用错过评分的音弹被就批活跃用户,活跃用户比由一般用户对app依赖性大,感情非常,喜欢程度高,去评分的转换率高。这个是当前极端风靡的模式,大部分app应该以就此者,在github上吗产生2000大多单stars,不过就遭到法难免会堵塞用户的正规操作,或者被用户感到稍死皮赖脸大购高卖的痛感。

10、GameInviteTask 的 Demo
GameInviteTask.xaml.cs

发出无来一个再次好的方案?我设想的用户场景:

/*
 * GameInviteTask - 游戏邀请(邀请其他人加入我的游戏会话)
 *     Completed - 完成操作之后所执行的事件
 *     SessionId - 游戏的会话 ID
 *     Show() - 发出邀请
 *     
 * TaskResult - 用户选择后的结果
 *     OK - 成功
 *     Cancel - 取消
 *     None - 失败
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Tasks;

namespace Demo.Choosers
{
    public partial class GameInviteTaskDemo : PhoneApplicationPage
    {
        private GameInviteTask _gameInviteTask;

        public GameInviteTaskDemo()
        {
            InitializeComponent();
        }

        private void btnDemo_Click(object sender, RoutedEventArgs e)
        {
            _gameInviteTask = new GameInviteTask();
            _gameInviteTask.Completed += new EventHandler<TaskEventArgs>(_gameInviteTask_Completed);

            try
            {
                // 游戏需要在 Windows Phone 上的 Xbox LIVE 中发布,并且邀请人也要是 Xbox LIVE 的会员
                _gameInviteTask.SessionId = "游戏的 session id";
                _gameInviteTask.Show();
            }
            catch (System.InvalidOperationException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        void _gameInviteTask_Completed(object sender, TaskEventArgs e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    MessageBox.Show("游戏邀请已发送");
                    break;

                case TaskResult.Cancel:
                    MessageBox.Show("游戏邀请已取消");
                    break;

                case TaskResult.None:
                    MessageBox.Show("游戏邀请无法发送");
                    break;
            }
        }
    }
}

with
what:
以当用户以app核心职能就某项操作及一个碰时,或者抱某荣誉时(这个时候是用户对app的价不过自然的下,或者说是最快活之时段)

OK
[源码下载]

desire: 张这感觉app帮助特别老,或者坏欢喜,不去评价对不起app开发人员

method:
弹出提示框,提示app已经帮助用户就xxx,节省xxxx,在app中得到xxxx,引导
去评分

各个一个app都生好的两样触发点,情况因app而议:

ex:音乐类app:当下满累计500首歌的早晚,触发事件,弹出:【这是若的第500首免费歌曲,趁在下载的空,去评价个分叉吧!】

ex:最近我们当开一样款款打榜的软件,有一个打榜的效应,我准备这样触发:

当用户打榜连续3不良拿走卓越的时光,小秘书发送祝贺消息:‘爷,您最近连连三不善是数一数二,小秘书帮您伪装了三蹩脚逼,要无失让我评个分叉?’

我YY的场面本质是喻用户app帮您就了什么或者叫你带了愉悦,是某事件点上沾的,而未是生硬的判定你是开拓app多少坏,然后用微的声音请你失去受评分,记住千万不要求,身份而一致,你只要坚信你的app对用户带来的价值,评分是她们应当做的,当然前提是若app能真帮用户解决问题。

备注:做产品之时节,需要差不多着想考虑用户的使状况。用户哪些时候会动用应用,是办事的当儿?走路的时光?用户时时以哪地方见面因此,在办公?地铁里?包括用户用应用之平台、情绪,以及用户的纱状态,这些还可能影响到你对成品的设计,要迎合用户之运用姿态。

(PS:转发呼吁加上原文链接,如果能帮助到人家再好不过  )