Windows Phone 7 开发系列教程之 启动器

Windows Phone7的启动器包括:

EmailComposeTask、MediaPlayerLauncher、PhoneCallTask、SavePhoneNumberTask、SaveEmailAddressTask、SearchTask、SmsComposeTask、WebBrowserTask、MarketplaceDetailTask、MarketplaceHubTask、MarketpalceReviewTask、MarketplaceSearchTask

接下来分别以示例代码和讲解的形式讲述各个启动器。

 

1、EmailComposeTask:启动电子邮件撰写任务

示例代码:

引用命名空间:

using Microsoft.Phone.Tasks;

调用EmailComposeTask:

EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.Bcc = "test1@163.com";
emailComposeTask.Body = "testBody";
emailComposeTask.Cc = "test2@163.com";
emailComposeTask.Subject = "Test Subject";
emailComposeTask.To = "testTo@163.com";

emailComposeTask.Show();

注意要点:

①在代码中不可以指定附件。

②如果手机上未设置电子邮件账户,则应用程序会提示设置一个账户。

③Bcc是私密抄送的意思,即别人不会看到你抄送给谁。

④To、Cc、Bcc属性,如果需要发送给多人的时候,也许是用分号分隔邮件地址(未曾试验),只是突然想到这个需求。在Net下的发送Mail,To属性是一个MailAddressCollection,这里的To是一个string,所以不敢肯定,试验之后才能确定。

 

2、MediaPlayerLauncher:启动MediaPlayer

MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();mediaPlayerLauncher.Controls = MediaPlaybackControls.All;
mediaPlayerLauncher.Location = MediaLocationType.Install;
mediaPlayerLauncher.Media = new Uri("Assets/Videos/1.mp4", UriKind.Relative);
mediaPlayerLauncher.Orientation = MediaPlayerOrientation.Portrait;
mediaPlayerLauncher.Show();

①默认是横向播放。

②Controls属性是一个MediaPlaybackControls枚举,该属性允许对成员值按位Or组合,即MediaPlaybackControls.FastForward|MediaPlaybackControls.Pause,成员包括:All、FastForward、None、Pause、Rewind、Skip、Stop。但是在模拟器上我试验了几个,效果都是一样的,均有开始/暂停、快进、后退、全屏/正常4个按钮,本人没有实机,未在实机上测试,说到这里突然想起来,前段时间我的一个app没有经过实机测试,上架成功了,tombstone机制都没测过,可见微软所谓的一堆认证也都是扯淡,交的那99美金也只是个幌子(当然我没交,我搞了一个学生账户,具体怎么搞的,大家都懂的…………)。

③媒体文件出于性能考虑,要将Build Action属性设置为Content。

④尽管我将Orientation属性设置成了Portrait(纵向),我在虚拟机上演示的结果依然是Landscape(横向)。

⑤Location属性,是一个枚举,有三种Data、Install、None

Data:指文件保存在独立存储中,写URI路径的时候,如果是相对的,系统会自动在前面加上当前app的独立存储路径。

Install:安装目录,指XAP包内部的路径。

None:如果设置成该属性,则会泡出FileNotFoundException。

3、PhoneCallTask:拨打电话任务

            PhoneCallTask phoneCallTask = new PhoneCallTask();
            phoneCallTask.DisplayName = "TestDisplayName";
            phoneCallTask.PhoneNumber = "1506190XXXX";
            phoneCallTask.Show();

效果:在屏幕上方弹出一个确认框,提示“Dial TestDisplayName at 1506390XXXX?”,两个按钮,“Call”和“Don't Call”。

4、SavePhoneNumberTask:保存电话号码任务

<strong>            SavePhoneNumberTask savePhoneNumberTask = new SavePhoneNumberTask();
            savePhoneNumberTask.PhoneNumber = "15063903725";
            savePhoneNumberTask.Completed += (s, e) => {
                if (e.TaskResult == TaskResult.OK)
                {
                    MessageBox.Show(savePhoneNumberTask.PhoneNumber);
                }
            };
            savePhoneNumberTask.Show();</strong>

①在保存完号码之后,要触发Completed事件,应该点击Back实体键退出保存任务。

 

5、SaveEmailAddressTask:保存Email地址任务

            SaveEmailAddressTask saveEmailAddressTask = new SaveEmailAddressTask();
            saveEmailAddressTask.Email = "test@163.com";
            saveEmailAddressTask.Completed += (s, e) => {
                MessageBox.Show(saveEmailAddressTask.Email);
            };

            saveEmailAddressTask.Show();

①在保存完Email地址之后,要触发Completed事件,应该点击Back实体键退出保存任务。

 

6、SearchTask:搜索任务

SearchTask searchTask = new SearchTask();

searchTask.SearchQuery = "Test keyword";

searchTask.Show();

①搜索任务即打开浏览器,在地址栏中以设定的关键字进行搜索

7、SmsComposeTask:短信撰写任务

SmsComposeTask smsComposeTask = new SmsComposeTask();

smsComposeTask.To = "1506190XXXX";
smsComposeTask.Body = "Test Message";

smsComposeTask.Show();

①如果手机没有SIM卡,在短信发送失败时会收到一条toast通知。

②短信不能在代码中指定附件。

8、WebBrowserTask:浏览器任务

WebBrowserTask webBrowserTask = new WebBrowserTask();

webBrowserTask.Uri = new Uri("http://www.baidu.com", UriKind.Absolute);

webBrowserTask.Show();

①建议使用URI属性,而不是使用URL,URL属性已经过时。

②URI中的地址必须设定协议类型,如此处的HTTP协议,要加上“http://”,否则会报错。

9、MarketplaceDetailTask:市场详细任务,启动微软市场详细页

            MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();
            marketplaceDetailTask.ContentIdentifier = "b871c4cb-dee1-43e3-8ccb-a4592e8604e5";
            marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;
            marketplaceDetailTask.Show();

①ContentIndentifier:要显示的应用的唯一ID,此ID可以在你的项目工程右键属性-->Assembly Information中的GUID中找到。如果不指定此属性,则默认显示调用MarketplaceDetailTask的应用程序(即当前应用)的详细页。

②ContentType:Applications或者Music

10、MarketplaceHubTask:市场中心任务

            MarketplaceHubTask marketplaceHubTask = new MarketplaceHubTask();
            marketplaceHubTask.ContentType = MarketplaceContentType.Applications;
            marketplaceHubTask.Show();

①也可以不指定内容类型,则显示所有的(包括Application和Music)的应用。

 

11、MarketpalceReviewTask:市场评论页任务

            MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();
            marketplaceReviewTask.Show();

①启动当前应用程序的评价页面。

 

12、MarketplaceSearchTask:市场搜索任务

            MarketplaceSearchTask marketplaceSearchTask = new MarketplaceSearchTask();
            marketplaceSearchTask.ContentType = MarketplaceContentType.Applications;
            marketplaceSearchTask.SearchTerms = "test keyword";
            marketplaceSearchTask.Show();

①ContentType包括Applications和Music。

②如果不指定内容类型,则根据关键字搜索整个商城。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值