`

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

 
阅读更多

Windows Phone7的启动器包括:

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

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

 

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

示例代码:

引用命名空间:

  1. using Microsoft.Phone.Tasks;  
using Microsoft.Phone.Tasks;

调用EmailComposeTask:

  1. EmailComposeTask emailComposeTask = new EmailComposeTask();  
  2. emailComposeTask.Bcc = "test1@163.com";  
  3. emailComposeTask.Body = "testBody";  
  4. emailComposeTask.Cc = "test2@163.com";  
  5. emailComposeTask.Subject = "Test Subject";  
  6. emailComposeTask.To = "testTo@163.com";  
  7.   
  8. emailComposeTask.Show();  
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

  1. MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();mediaPlayerLauncher.Controls = MediaPlaybackControls.All;  
  2. mediaPlayerLauncher.Location = MediaLocationType.Install;  
  3. mediaPlayerLauncher.Media = new Uri("Assets/Videos/1.mp4", UriKind.Relative);  
  4. mediaPlayerLauncher.Orientation = MediaPlayerOrientation.Portrait;  
  5. mediaPlayerLauncher.Show();  
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:拨打电话任务

  1. PhoneCallTask phoneCallTask = new PhoneCallTask();  
  2. phoneCallTask.DisplayName = "TestDisplayName";  
  3. phoneCallTask.PhoneNumber = "1506190XXXX";  
  4. phoneCallTask.Show();  
            PhoneCallTask phoneCallTask = new PhoneCallTask();
            phoneCallTask.DisplayName = "TestDisplayName";
            phoneCallTask.PhoneNumber = "1506190XXXX";
            phoneCallTask.Show();

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

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

  1. <span style="font-weight: bold;">            SavePhoneNumberTask savePhoneNumberTask = new SavePhoneNumberTask();  
  2.             savePhoneNumberTask.PhoneNumber = "15063903725";  
  3.             savePhoneNumberTask.Completed += (s, e) => {  
  4.                 if (e.TaskResult == TaskResult.OK)  
  5.                 {  
  6.                     MessageBox.Show(savePhoneNumberTask.PhoneNumber);  
  7.                 }  
  8.             };  
  9.             savePhoneNumberTask.Show();</span>  
            SavePhoneNumberTask savePhoneNumberTask = new SavePhoneNumberTask();
            savePhoneNumberTask.PhoneNumber = "15063903725";
            savePhoneNumberTask.Completed += (s, e) => {
                if (e.TaskResult == TaskResult.OK)
                {
                    MessageBox.Show(savePhoneNumberTask.PhoneNumber);
                }
            };
            savePhoneNumberTask.Show();

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

 

5、SaveEmailAddressTask:保存Email地址任务

  1. SaveEmailAddressTask saveEmailAddressTask = new SaveEmailAddressTask();  
  2. saveEmailAddressTask.Email = "test@163.com";  
  3. saveEmailAddressTask.Completed += (s, e) => {  
  4.     MessageBox.Show(saveEmailAddressTask.Email);  
  5. };  
  6.   
  7. saveEmailAddressTask.Show();  
            SaveEmailAddressTask saveEmailAddressTask = new SaveEmailAddressTask();
            saveEmailAddressTask.Email = "test@163.com";
            saveEmailAddressTask.Completed += (s, e) => {
                MessageBox.Show(saveEmailAddressTask.Email);
            };

            saveEmailAddressTask.Show();

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

 

6、SearchTask:搜索任务

  1. SearchTask searchTask = new SearchTask();  
  2.   
  3. searchTask.SearchQuery = "Test keyword";  
  4.   
  5. searchTask.Show();  
SearchTask searchTask = new SearchTask();

searchTask.SearchQuery = "Test keyword";

searchTask.Show();

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

7、SmsComposeTask:短信撰写任务

  1. SmsComposeTask smsComposeTask = new SmsComposeTask();  
  2.   
  3. smsComposeTask.To = "1506190XXXX";  
  4. smsComposeTask.Body = "Test Message";  
  5.   
  6. smsComposeTask.Show();  
SmsComposeTask smsComposeTask = new SmsComposeTask();

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

smsComposeTask.Show();

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

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

8、WebBrowserTask:浏览器任务

  1. WebBrowserTask webBrowserTask = new WebBrowserTask();  
  2.   
  3. webBrowserTask.Uri = new Uri("http://www.baidu.com", UriKind.Absolute);  
  4.   
  5. webBrowserTask.Show();  
WebBrowserTask webBrowserTask = new WebBrowserTask();

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

webBrowserTask.Show();

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

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

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

  1. MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();  
  2. marketplaceDetailTask.ContentIdentifier = "b871c4cb-dee1-43e3-8ccb-a4592e8604e5";  
  3. marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;  
  4. marketplaceDetailTask.Show();  
            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:市场中心任务

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

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

 

11、MarketpalceReviewTask:市场评论页任务

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

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

 

12、MarketplaceSearchTask:市场搜索任务

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

①ContentType包括Applications和Music。

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

分享到:
评论

相关推荐

    Windows Phone 7开发教程汇总(pdf)

    本教程旨在帮助开发者深入了解Windows Phone 7的开发技术,包括编程语言、开发环境、用户界面设计以及应用发布流程等关键内容。 1. **编程语言**:Windows Phone 7开发主要使用C#或VB.NET,基于.NET Framework的...

    Windows_Phone_7开发教程汇总

    Windows Phone 7 开发教程是针对想要在微软的智能手机...通过这一系列教程,开发者不仅可以掌握开发Windows Phone 7应用的基础技能,还能了解到如何利用这个平台的独特特性和功能,创作出吸引用户的高质量应用程序。

    Windows_Phone_7开发教程

    开发Windows Phone 7应用首先需要安装Microsoft Visual Studio Express for Windows Phone,这是专为Windows Phone开发设计的集成开发环境(IDE)。该软件包括了开发所需的编译器、调试器以及模拟器,方便开发者在没有...

    wp7开发31日谈完整版

    6. **全景视图**(060106_WP7 开发 31 日谈——第16日:全景视图.doc):全景视图是WP7应用的特色界面,提供了类似Windows Phone启动器的滑动浏览效果。本节将阐述如何创建和自定义全景界面,以展示大量信息。 7. *...

    android开发资料大全

    Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程) 新手入门 会员贡献电子图书整理(内含PDF下载) ...

    新版Android开发教程.rar

    � 源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发 出 更具差异性的应用。 � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要...

    Windows 下64位的lonicLab

    Lonic允许开发者使用Web技术(如HTML、CSS和JavaScript)来开发原生感觉的应用程序,这些应用程序可以部署在iOS、Android和Windows Phone平台上。 【压缩包内容】:从“IonicLabSetup”这个文件名来看,这应该是一...

    【教程】使用Cocos构建一个完整项目.pdf

    其核心优势在于支持C++、Lua及JavaScript等多种编程语言,实现跨平台部署,覆盖iOS、Android、Windows Phone、BlackBerry和Tizen等多个平台,极大地简化了开发流程并降低了成本。 - **Cocos Studio**:这是Cocos2d...

    WP7字典以及SQLITE数据库使用

    在Windows Phone 7 (WP7)平台上开发应用时,SQLite是一个常见的本地数据库解决方案,尤其适合存储结构化的数据。SQLite是一个轻量级、自包含、零配置的事务型数据库引擎,能够在各种操作系统上运行,包括WP7。这个...

    VS2013 update4

    8. 设计工具升级:设计视图和XAML编辑器得到了增强,提供了更直观的UI设计体验,同时支持Windows Store应用和Windows Phone应用的开发。 9. 插件和扩展性:Update 4增强了插件和扩展的兼容性,使得开发者可以更轻松...

    JavaScript使用DeviceOne开发实战(一) 配置和起步

    JavaScript使用DeviceOne开发实战系列教程主要面向希望通过JavaScript进行跨平台移动应用开发的程序员。DeviceOne是一个高效的跨平台开发框架,允许开发者使用HTML5、JavaScript、Android、iOS和Windows的混合编程,...

    Mac工具.zip

    综上所述,"Mac工具.zip"可能包含了一系列教程、指南或者实用工具,旨在帮助Windows用户更好地理解和操作Mac系统,包括文件管理、系统设置、应用使用以及跨平台的协作方法。这些内容对于经常在两种操作系统之间切换...

    Game.Development.with.Unity

    3. **安装Unity编辑器**:下载并安装Unity编辑器,这是进行游戏开发的基本工具。 4. **参与社区交流**:加入Unity的官方论坛或其他开发者社区,与其他开发者交流经验、解决问题和获取灵感。 ### 综合工作流程 ...

    JavaScript使用DeviceOne开发实战(二) 生成调试安装包

    JavaScript使用DeviceOne开发实战系列教程主要面向希望通过JavaScript进行移动应用开发的开发者。在这个实战的第二部分,我们将聚焦于生成调试安装包以及后续的调试和发布流程。以下是对这些环节的详细解析: ### ...

    Cocos2d-x--珍藏版

    ### Cocos2d-x基础教程知识点详解 #### Cocos2d-x环境搭建 在开始使用Cocos2d-x进行游戏开发之前,需要进行环境的搭建。这部分主要介绍了如何在Windows系统中使用Visual Studio 2008和Cocos2d-x引擎创建HelloWorld...

    phonegap依赖

    开发者可以编写一次代码,然后通过PhoneGap编译工具将其转换为适用于iOS、Android、Windows Phone、BlackBerry等多种操作系统的应用。这极大地降低了开发成本和时间投入,特别适合那些希望快速进入移动市场的团队和...

    MAGLDR112 刷机引导程序

    MAGLDR112 是 HTC HD2 用户实现系统多平台转换的关键工具,通过这个引导程序,用户可以将手机刷入不同的操作系统,如Android、Windows Phone 7、Ubuntu甚至是怀旧的Windows 95。 首先,我们要了解什么是刷机。刷机...

    前端项目-Swiper.zip

    2. **多平台兼容**:Swiper 能很好地适应各种设备和浏览器,包括 iOS、Android、Windows Phone 以及桌面端的 Chrome、Firefox、Safari 等,确保了跨平台的一致性。 3. **触摸滑动支持**:Swiper 针对移动端进行了...

    Android程序设计基础

    本书是一部关于 android开发的基础教程,采用由浅入深、循序渐进的方式讨论android。书中还结合数独游戏等实例更加形象生动地讲解了 android开发的基本流程,且每章最后都有一个 “快速阅读指南 ”,更加方便了读者...

Global site tag (gtag.js) - Google Analytics