我最近正在研究Windows Phone 8.1的文件共享功能。一种可能性是,通过文件扩展名来做到这一点。我的问题是,我的应用程序如何访问它注册要处理的已启动文件。
我知道在WP8中这是使用URI和文件标记(https://msdn.microsoft.com/en-us/library/windows/apps/jj206987%28v=vs.105%29.aspx)完成的,但由于SharedStorageAccessManager类不再可用,我猜它必须在8.1中完成不同。
那么:当通过文件扩展名启动应用程序时,Win8.1 / WP8.1中“操作系统级别”会发生什么,目标应用程序如何实际获取已启动的文件?
提前致谢!
答案 0 :(得分:1)
该应用可以在其Package.appxmanifest中注册为文件处理程序。在Visual Studio中打开清单设计器,转到声明选项卡,然后添加文件类型关联声明。系统会提示您填写详细信息。
将使用Application.OnFileActivated。FileActivatedEventArgs属性中已启动的StorageFiles调用应用的Files方法。
有关文档和演练的信息,请参阅How to handle file activation和Association Launching sample。
在系统级别,这一切都存储在注册表中,当在文件上调用启动器时,shell会查找关联,然后使用COM(或历史命令行参数或DDE)启动或连接到注册的应用程序文件类型。详细信息对Windows运行时应用程序隐藏,但更直接暴露在Windows上的桌面应用程序中。请参阅文件type and URI associations model Implementing a Custom File Format