×
Namespaces

Variants
Actions

Windows Phone 8中的应用间通讯

From Nokia Developer Wiki
Jump to: navigation, search
WP Metro Icon File.png
SignpostIcon XAML 40.png
WP Metro Icon WP8.png
Article Metadata

代码示例
兼容于
文章
关键词: URI Associations
Xinx Gong 在 07 Jan 2013 创建
最后由 hamishwillee 在 28 Jun 2013 编辑

Contents

自定义文件类型关联

Windows Phone 8中,当用户想打开特定文件时,文件关联允许您的应用自动启动。该文件来源包括但不限于以下来源:

- 邮件附件
- 浏览器
- NFC Tag
- 其他应用程序
- SD卡

在Manifest文件中注册文件类型

… …
</Token>
<Extensions>
<FileTypeAssociation Name="a2a" NavUriFragment="fileToken=%s" TaskID="_default">
<SupportedFileTypes>
<FileType>.a2a</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extensions>

注:最多可关联20个文件扩展名。

应用图标的尺寸如下:

App to app 1.png

在Manifest文件中指定图标:

… …
</Token>
<Extensions>
<FileTypeAssociation Name="a2a" NavUriFragment="fileToken=%s" TaskID="_default">
<Logos>
<Logo Size="small">Assets\Logo\logo-33.png</Logo>
<Logo Size="medium">Assets\Logo\logo-69.png</Logo>
<Logo Size="large">Assets\Logo\logo-176.png</Logo>
</Logos>
</FileTypeAssociation>
</Extensions>

监听文件启动

在通过外部关联文件打开该应用程序时,应用将获取到如下的一个Uri:

/FileTypeAssociation?fileToken=89819279-4fe0-4531-9f57-d633f0949a19

可以通过UriMapper的方式来解析这个Uri。UriMapping的用法

fileToken后面的参数指的是外部文件在共享隔离存储中的Token,可以通过这个Token将文件拷贝到该应用程序的独立存储空间中来。Windows Phone 8的独立存储文件系统

// StorageFolder destinationFolder
// 目标文件夹,文件将复制到的位置。
// string desiredName
// 目标文件夹中新文件的名称。
// NameCollisionOption option
// 指定存在现有文件与目标文件夹中文件的名称相同时要执行的操作。
// string fileToken
// 文件关联中的文件的 ID。
IStorageFile file = await SharedStorageAccessManager.CopySharedFileAsync(destinationFolder, desiredName, option, fileToken);

从其他程序打开文件

你也可以从其他程序的独立存储中得到关联文件,然后用该应用程序打开这个文件。

StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile file1 = await local.GetFileAsync("file1.a2a");
Windows.System.Launcher.LaunchFileAsync(file1);

系统保留的扩展名

App to app 2.png

URI关联

在Manifest文件中注册协议

    </Tokens>
<Extensions>
<Protocol Name="a2a" NavUriFragment="content=%s" TaskID="_default"/>
</Extensions>

监听文件启动

在外部通过关联的URI打开该应用程序时(如URI为:a2a:12345),应用程序将获取到如下一个Uri:

/Protocol?content=a2a%3A12345

同样也可以通过UriMapper的方式来处理这个Uri。

从其他程序中启动URI

await Windows.System.Launcher.LaunchUriAsync(new Uri("a2a:12345"));

系统保留的URI关键字

http(s)
Tel
Onenote
Map
Mailto
Zune

通过URI打开系统build-in apps

App to app 3.png

示例源代码下载

File:AppToAppSample.zip

This page was last modified on 28 June 2013, at 09:43.
100 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×