Windows Phone 8中的应用间通讯
文章信息
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个文件扩展名。
添加Logo
应用图标的尺寸如下:
在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);
系统保留的扩展名
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





(no comments yet)