使用 Windows Phone 8 文件和 URI 关联的自动启动应用
2013-03-25 14:56
746 查看
当另一个应用启动特定的文件类型或 URI 方案时,您可以使用 Windows Phone 8 中的文件和 URI 关联自动启动您的应用。启动后,深层链接 URI 将被用来向应用发送文件(对文件的引用)或 URI。您也可以使用关联启动 API 以相同的方式启动另一个应用。本主题描述了文件和 URI 关联以及如何在应用中使用它们。
本主题包含以下各节。
文件关联
URI
关联
关联如何为用户工作
相关主题
文件关联
当用户想要打开某个特定文件时,文件关联允许您的应用自动启动。该文件可能来自不同的来源,这包括但不限于以下来源:
电子邮件附件
Internet Explorer 中的网站
近距离无线通信 (NFC) 标记
商店 中的其他应用
文件关联还可以用来确定,通过使用外部存储 API,应用可以从 SD 卡读取哪些文件类型。有关这些 API 的更多信息,请参见 Windows
Phone 的数据。
要处理特定的文件类型,请在应用清单文件中注册文件关联。应用能够指定任何可处理的文件关联。但是,任何由内置应用保留的文件关联将被忽略。有关更多信息,请参见 Windows
Phone 8 的保留文件和 URI 关联。
要向在内置应用中显示的自定义文件类型提供“集成”外观,您可以选择是否提供在文件旁边显示的徽标(图像文件)。例如,如果文件(您自定义的类型)被附加到电子邮件,下载附件后,附件的旁边将显示一个小型的徽标。
文件类型徽标显示在白色背景前,请确保在测试应用时,检查您的徽标在手机上的显示方式。还请注意,如果不止一个应用注册了相同的文件类型,那么您将看不到您的徽标。在这种情况下,则使用常规徽标。下表列出了三种可向每个文件关联提供的图像大小。
要注册文件关联,您必须使用 XML(文本)编辑器编辑 WMAppManifest.xml。在“解决方案资源管理器”中,右键单击
WMAppManifest.xml 文件,然后单击“打开方式”。在“打开方式”窗口中,选择“XML(文本)编辑器”,然后单击“确定”。
在应用清单文件的Extensions元素中,文件关联是使用FileTypeAssociation元素所指定的。请注意,Extensions元素必须紧跟在Tokens元素之后。下面的示例演示了称为“Windows
Phone SDK 测试文件类型”的假想文件类型的文件关联,该关联能够处理两种不同文件扩展名:“.sdkTest1”和“.sdkTest2”。
XAML
下表描述了所有这些元素。
当您的应用启动以处理某个特定的文件类型时,深层链接 URI 用于将用户带到您的应用。在 URI 中,FileTypeAssociation字符串指定
URI 的源为文件关联且fileToken参数包含文件标记。例如,以下代码显示了文件关联的深层链接
URI。
启动时,将传入的深层链接 URI 映射到能够处理该文件的应用页面。如果您拥有用于处理多个文件类型的多个页面,请在映射 URI 之前使用自定义的 URI 映射器和 GetSharedFileName 方法检查文件类型。例如,以下代码演示了用于分析深层链接 URI 并根据文件的类型映射不同页面的 URI 映射器。如果映射器不是从文件关联启动的,它会在保持 URI 不变的情况下,将完整的 URI 字符串发回到App对象。
C#
在此类情况下,若要在您的应用中使用 URI 映射器类,请将其分配到该应用在 App.xaml.cs 文件中所对应的框架。在InitializePhoneApplication方法中,在RootFrame.Navigated已被分配后,紧接着将RootFrame.UriMapper属性设置为与您的
URI 映射器类相等。在下列示例中,AssociationUriMapper类被分配给框架的UriMapper属性。
C#
启动应用后,它将在初始化期间分配 URI 映射器。在启动任何页面之前,应用将调用 URI 映射器的MapUri 方法确定要启动的页面。URI
映射器返回的 URI 即应用所启动的页面。
启动页面时,通过使用页面的 NavigationContext 对象的 QueryString 属性,页面可以访问
URI(启动了该页面)中的所有参数。例如,以下代码将所有的 URI 参数和值都放置在 IDictionary 对象中。
C#
当您获得了深层链接 URI 的文件标记后,使用 Windows.Phone.Storage.SharedAccess 命名空间中的SharedStorageAccessManager 静态类访问该文件。 SharedStorageAccessManager 提供了以下方法。
如前所述,您的应用也可以启动文件,以便另一个应用能够打开它。为此,请使用 Windows.System 命名空间的启动器对象的 LaunchFileAsync 方法。例如,下列代码从本地存储启动了一个假想
Contoso Bug 查询文件。
C#
URI
关联
URI 关联允许应用在另一个应用启动了特殊的 URI 时自动启动。URI 的特别之处在于,它以应用注册的 URI 方案名为开头。URI 方案名是
URI 的一部分,它位于冒号 (‘:’) 之前。URI 方案包括 URI 方案名以及跟随在冒号后的所有 URI。例如,在下面的 URI 方案中,contoso为
URI 方案名。
不论您是否愿意,冒号之后的其余 URI 始终将公开以允许使用 URI 关联。您的应用启动后,它可以检查 URI 并根据 URI 的内容呈现不同的行为。在本示例中,接收应用用于显示特定类别中所有的产品。
要处理 URI 关联,请在应用清单文件 WMAppManifest.xml 中指定相应的 URI 方案名。您的 URI 方案名可以是字母和数字的任意组合;但是任何由内置应用保留的方案名都将被忽略。有关更多信息,请参见Windows
Phone 8 的保留文件和 URI 关联。
要注册 URI 关联,您必须使用 XML(文本)编辑器编辑 WMAppManifest.xml。在“解决方案资源管理器”中,右键单击
WMAppManifest.xml 文件,然后单击“打开方式”。在“打开方式”窗口中,选择“XML(文本)编辑器”,然后单击“确定”。
在应用清单文件的Extensions元素中,URI
关联是使用Protocol元素所指定的。请注意,Extensions元素必须紧跟在Tokens元素之后。每个应用中最多可以注册
10 个 URI 关联。下面的示例演示了能够处理contosoURI
方案名的假想应用的 URI 关联。
XAML
Protocol元素由以下特性组成。
当您的应用自动启动以处理某个 URI 关联时,深层链接 URI 用于将用户带到您的应用。在 URI 中,Protocol字符串指定
URI 的源为 URI 关联。名为encodedLaunchuri的
URI 参数等于从源应用发送的整个 URI 方案的 URI 编码版本。例如,以下代码演示了当假想应用作为contosoURI
关联的结果被启动后,该应用将显示的启动 URI。
应用启动时,将传入的深层链接 URI 映射到能够处理 URI 关联的应用页面。以下示例演示了使用 ShowProducts.xaml 页面映射 Contoso“显示产品”请求的自定义 URI 映射器。如果没有使用 Contoso URI 方案名,完整的 URI 将被发送到 MainPage.xaml 页面。
C#
在此类情况下,若要在您的应用中使用 URI 映射器类,请将其分配到该应用在 App.xaml.cs 文件中所对应的框架。在InitializePhoneApplication方法中,在RootFrame.Navigated已分配后,紧接着将RootFrame.UriMapper属性分配给您的
URI 映射器类。在下列示例中,AssociationUriMapper类被分配给框架的UriMapper属性。
C#
启动应用后,它将在初始化期间分配 URI 映射器。在启动任何页面之前,应用将调用 URI 映射器的MapUri 方法确定要启动的页面。URI
映射器返回的 URI 即应用所启动的页面。
启动页面时,通过使用页面的 NavigationContext 对象的 QueryString 属性,页面可以访问
URI(启动了该页面)中的所有参数。例如,以下代码将所有的 URI 参数和值都放置在 IDictionary 对象中。
C#
通过使用关联启动 API,您的应用可以通过启动自定义的 URI 自动启动另一个应用。为此,请使用 Windows.System 命名空间的启动器对象的 Launcher..::.LaunchUriAsync(Uri) 方法。例如,以下代码启动了一个假想
Contoso 应用以显示新产品。
C#
当您的 URI 被传递到附带 URI 关联的接收应用,已启动 URI 中所有的保留字符都将自动进行百分比编码。例如,一个应用启动 URI“contoso:NewProducts”后,会导致另一个应用接收深层链接
URI“/Protocol?encodedLaunchUri=contoso%3ANewProducts”。
关联如何为用户工作
用户从应用启动文件或 URI 后,接下来将发生的情况取决于手机上安装了哪种应用。如果手机上的应用无法处理该特定文件或 URI 关联,用户可以选择是否获取可处理这些情况的应用。
如果特定文件或 URI 关联在手机上只注册了一个应用,当用户要打开它时,该应用将自动启动。如果用户在手机上拥有多个为文件或 URI 关联注册的应用,每次用户打开文件时,系统都会询问要使用哪个应用。
提示: |
---|
类似于 Windows 8,Windows Phone 8 使用 LaunchFileAsync 启动文件,并使用 LaunchUriAsync 启动 URI。但是,Windows Phone XAML 应用接收文件或 URI 的方式却是不同的。此外, Windows Phone 没有“默认的”商店 应用。如果存在多个能够处理某个特定文件或 URI 关联的 商店 应用,用户可以从菜单中选择接收应用。 |
文件关联
URI
关联
关联如何为用户工作
相关主题
文件关联
当用户想要打开某个特定文件时,文件关联允许您的应用自动启动。该文件可能来自不同的来源,这包括但不限于以下来源:
电子邮件附件
Internet Explorer 中的网站
近距离无线通信 (NFC) 标记
商店 中的其他应用
文件关联还可以用来确定,通过使用外部存储 API,应用可以从 SD 卡读取哪些文件类型。有关这些 API 的更多信息,请参见 Windows
Phone 的数据。
注册文件关联
要处理特定的文件类型,请在应用清单文件中注册文件关联。应用能够指定任何可处理的文件关联。但是,任何由内置应用保留的文件关联将被忽略。有关更多信息,请参见 WindowsPhone 8 的保留文件和 URI 关联。
注意: |
---|
有时 Internet Explorer 重写文件关联:它启动内置的媒体播放器来处理所有的音乐和视频文件类型。具体来说,具有audio/或video/内容类型的任何文件。例如,应用从电子邮件附件启动时,它可以处理(非保留的)音乐和视频文件。但是如果从 Internet Explorer 启动相同的文件,则内置的媒体播放器将处理该文件。 |
文件类型徽标显示在白色背景前,请确保在测试应用时,检查您的徽标在手机上的显示方式。还请注意,如果不止一个应用注册了相同的文件类型,那么您将看不到您的徽标。在这种情况下,则使用常规徽标。下表列出了三种可向每个文件关联提供的图像大小。
徽标大小 | 用途 | 维度 |
---|---|---|
小 | 电子邮件附件 | 33x33 像素 |
中 | Office 中心列表视图 | 69x69 像素 |
大 | 浏览器下载 | 176x176 像素 |
提示: |
---|
作为最佳做法,我们建议您将徽标存储在应用包的资产文件夹中。 |
WMAppManifest.xml 文件,然后单击“打开方式”。在“打开方式”窗口中,选择“XML(文本)编辑器”,然后单击“确定”。
在应用清单文件的Extensions元素中,文件关联是使用FileTypeAssociation元素所指定的。请注意,Extensions元素必须紧跟在Tokens元素之后。下面的示例演示了称为“Windows
Phone SDK 测试文件类型”的假想文件类型的文件关联,该关联能够处理两种不同文件扩展名:“.sdkTest1”和“.sdkTest2”。
XAML
<Extensions> <FileTypeAssociation Name="Windows Phone SDK test file type" TaskID="_default" NavUriFragment="fileToken=%s"> <Logos> <Logo Size="small" IsRelative="true">Assets/sdk-small-33x33.png</Logo> <Logo Size="medium" IsRelative="true">Assets/sdk-medium-69x69.png</Logo> <Logo Size="large" IsRelative="true">Assets/sdk-large-176x176.png</Logo> </Logos> <SupportedFileTypes> <FileType ContentType="application/sdk">.sdkTest1</FileType> <FileType ContentType="application/sdk">.sdkTest2</FileType> </SupportedFileTypes> </FileTypeAssociation> </Extensions>
下表描述了所有这些元素。
元素 | 父元素 | 说明 |
---|---|---|
Extensions | App | 必须跟在Tokens元素之后。 |
FileTypeAssociation | Extensions | 描述文件关联。您最多可以注册 20 个文件关联。必须提供Name特性,但您可以选择自己的友好名称。根据指示指定TaskID和NavUriFragment元素。 |
Logos | FileTypeAssociation | 列出文件关联的所有徽标。如果没有指定任何徽标,这是可选的。 |
Logo | Logos | 可选项。列出要显示在文件旁边的图像文件。若要提供大小,您必须提供所有大小(小、中等和大)。IsRelative特性必须存在并等于true。 |
SupportedFileTypes | FileTypeAssociation | 列出与文件类型相关联的所有文件扩展名。 |
FileType | SupportedFileTypes | 列出与文件类型相关的文件扩展名,包括句点 (‘.’)。每个文件关联最多可以关联 20 个文件扩展名。若您的应用从 SD 卡读取文件,您还必须指定ContentType特性以描述文件的类型。 |
侦听文件启动
当您的应用启动以处理某个特定的文件类型时,深层链接 URI 用于将用户带到您的应用。在 URI 中,FileTypeAssociation字符串指定URI 的源为文件关联且fileToken参数包含文件标记。例如,以下代码显示了文件关联的深层链接
URI。
/FileTypeAssociation?fileToken=89819279-4fe0-4531-9f57-d633f0949a19
启动时,将传入的深层链接 URI 映射到能够处理该文件的应用页面。如果您拥有用于处理多个文件类型的多个页面,请在映射 URI 之前使用自定义的 URI 映射器和 GetSharedFileName 方法检查文件类型。例如,以下代码演示了用于分析深层链接 URI 并根据文件的类型映射不同页面的 URI 映射器。如果映射器不是从文件关联启动的,它会在保持 URI 不变的情况下,将完整的 URI 字符串发回到App对象。
C#
using System; using System.Windows.Navigation; using Windows.Phone.Storage.SharedAccess; namespace sdkAutoLaunch { class AssociationUriMapper : UriMapperBase { private string tempUri; public override Uri MapUri(Uri uri) { tempUri = uri.ToString(); // File association launch if (tempUri.Contains("/FileTypeAssociation")) { // Get the file ID (after "fileToken="). int fileIDIndex = tempUri.IndexOf("fileToken=") + 10; string fileID = tempUri.Substring(fileIDIndex); // Get the file name. string incomingFileName = SharedStorageAccessManager.GetSharedFileName(fileID); // Get the file extension. int extensionIndex = incomingFileName.LastIndexOf('.'); string incomingFileType = incomingFileName.Substring(extensionIndex).ToLower(); // Map the .sdkTest1 and .sdkTest2 files to different pages. switch (incomingFileType) { case ".sdkTest1": return new Uri("/sdkTest1Page.xaml?fileToken=" + fileID, UriKind.Relative); case ".sdkTest2": return new Uri("/sdkTest2Page.xaml?fileToken=" + fileID, UriKind.Relative); default: return new Uri("/MainPage.xaml", UriKind.Relative); } } // Otherwise perform normal launch. return uri; } } }
在此类情况下,若要在您的应用中使用 URI 映射器类,请将其分配到该应用在 App.xaml.cs 文件中所对应的框架。在InitializePhoneApplication方法中,在RootFrame.Navigated已被分配后,紧接着将RootFrame.UriMapper属性设置为与您的
URI 映射器类相等。在下列示例中,AssociationUriMapper类被分配给框架的UriMapper属性。
C#
private void InitializePhoneApplication() { if (phoneApplicationInitialized) return; // Create the frame but don't set it as RootVisual yet; this allows the splash // screen to remain active until the application is ready to render. RootFrame = new PhoneApplicationFrame(); RootFrame.Navigated += CompleteInitializePhoneApplication; // Assign the URI-mapper class to the application frame. RootFrame.UriMapper = new AssociationUriMapper(); // Handle navigation failures RootFrame.NavigationFailed += RootFrame_NavigationFailed; // Ensure we don't initialize again phoneApplicationInitialized = true; }
启动应用后,它将在初始化期间分配 URI 映射器。在启动任何页面之前,应用将调用 URI 映射器的MapUri 方法确定要启动的页面。URI
映射器返回的 URI 即应用所启动的页面。
启动页面时,通过使用页面的 NavigationContext 对象的 QueryString 属性,页面可以访问
URI(启动了该页面)中的所有参数。例如,以下代码将所有的 URI 参数和值都放置在 IDictionary 对象中。
C#
// Get a dictionary of URI parameters and values. IDictionary<string, string> queryStrings = this.NavigationContext.QueryString;
检索文件
当您获得了深层链接 URI 的文件标记后,使用 Windows.Phone.Storage.SharedAccess 命名空间中的SharedStorageAccessManager 静态类访问该文件。 SharedStorageAccessManager 提供了以下方法。方法 | 返回类型 | 说明 |
---|---|---|
GetSharedFileName | System.String | 返回文件名(包括文件扩展名)。 |
CopySharedFileAsync | Windows.Storage.StorageFile | 将文件复制到特定的位置并返回副本。 |
启动文件
如前所述,您的应用也可以启动文件,以便另一个应用能够打开它。为此,请使用 Windows.System 命名空间的启动器对象的 LaunchFileAsync 方法。例如,下列代码从本地存储启动了一个假想Contoso Bug 查询文件。
C#
private async void LaunchFileButton_Click(object sender, RoutedEventArgs rea) { // Access isolated storage. StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; // Access the bug query file. StorageFile bqfile = await local.GetFileAsync("file1.bqy"); // Launch the bug query file. Windows.System.Launcher.LaunchFileAsync(bqfile); }
URI
关联
URI 关联允许应用在另一个应用启动了特殊的 URI 时自动启动。URI 的特别之处在于,它以应用注册的 URI 方案名为开头。URI 方案名是
URI 的一部分,它位于冒号 (‘:’) 之前。URI 方案包括 URI 方案名以及跟随在冒号后的所有 URI。例如,在下面的 URI 方案中,contoso为
URI 方案名。
contoso:ShowProducts?CategoryID=aea6ae1f-9894-404e-8bca-ec47ec5b9c6c
不论您是否愿意,冒号之后的其余 URI 始终将公开以允许使用 URI 关联。您的应用启动后,它可以检查 URI 并根据 URI 的内容呈现不同的行为。在本示例中,接收应用用于显示特定类别中所有的产品。
提示: |
---|
如果您只感兴趣启动您自己的应用,则考虑使用来自 Windows.Phone.Management.Deployment 命名空间的 API。您可以使用该 API 来检查您已经发布的其他应用,如果它们已经安装,则启动它们。有关更多信息,请参见 Windows Phone 的启动、恢复和多任务处理。 |
注册 URI 关联
要处理 URI 关联,请在应用清单文件 WMAppManifest.xml 中指定相应的 URI 方案名。您的 URI 方案名可以是字母和数字的任意组合;但是任何由内置应用保留的方案名都将被忽略。有关更多信息,请参见WindowsPhone 8 的保留文件和 URI 关联。
要注册 URI 关联,您必须使用 XML(文本)编辑器编辑 WMAppManifest.xml。在“解决方案资源管理器”中,右键单击
WMAppManifest.xml 文件,然后单击“打开方式”。在“打开方式”窗口中,选择“XML(文本)编辑器”,然后单击“确定”。
在应用清单文件的Extensions元素中,URI
关联是使用Protocol元素所指定的。请注意,Extensions元素必须紧跟在Tokens元素之后。每个应用中最多可以注册
10 个 URI 关联。下面的示例演示了能够处理contosoURI
方案名的假想应用的 URI 关联。
XAML
<Extensions> <Protocol Name="contoso" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" /> </Extensions>
Protocol元素由以下特性组成。
特性 | 说明 |
---|---|
名称 | 自定义的 URI 方案的前缀。包含数字、小写字母、句点 (‘.’) 或连字符 (‘-’) 且长度介于 3 和 39 个字符的字符串。它不包含冒号 (‘:’)或任何紧跟其后的 URI 中的内容。 |
NavUriFragment | 必须始终等于encodedLaunchUri=%s |
TaskID | 必须始终等于_default |
侦听 URI
当您的应用自动启动以处理某个 URI 关联时,深层链接 URI 用于将用户带到您的应用。在 URI 中,Protocol字符串指定URI 的源为 URI 关联。名为encodedLaunchuri的
URI 参数等于从源应用发送的整个 URI 方案的 URI 编码版本。例如,以下代码演示了当假想应用作为contosoURI
关联的结果被启动后,该应用将显示的启动 URI。
/Protocol?encodedLaunchUri=contoso%3AShowProducts%3FCategoryID%3Daea6ae1f-9894-404e-8bca-ec47ec5b9c6c
重要说明: |
---|
启动应用后,URI 方案中所有保留的字符都将自动进行百分比编码。例如,一个应用启动 URI“contoso:NewProducts”后,会导致另一个应用接收深层链接 URI“/Protocol?encodedLaunchUri=contoso%3ANewProducts”。 |
C#
using System; using System.Windows.Navigation; namespace sdkAutoLaunch { class AssociationUriMapper : UriMapperBase { private string tempUri; public override Uri MapUri(Uri uri) { tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString()); // URI association launch for contoso. if (tempUri.Contains("contoso:ShowProducts?CategoryID=")) { // Get the category ID (after "CategoryID="). int categoryIdIndex = tempUri.IndexOf("CategoryID=") + 11; string categoryId = tempUri.Substring(categoryIdIndex); // Map the show products request to ShowProducts.xaml return new Uri("/ShowProducts.xaml?CategoryID=" + categoryId, UriKind.Relative); } // Otherwise perform normal launch. return uri; } } }
在此类情况下,若要在您的应用中使用 URI 映射器类,请将其分配到该应用在 App.xaml.cs 文件中所对应的框架。在InitializePhoneApplication方法中,在RootFrame.Navigated已分配后,紧接着将RootFrame.UriMapper属性分配给您的
URI 映射器类。在下列示例中,AssociationUriMapper类被分配给框架的UriMapper属性。
C#
private void InitializePhoneApplication() { if (phoneApplicationInitialized) return; // Create the frame but don't set it as RootVisual yet; this allows the splash // screen to remain active until the application is ready to render. RootFrame = new PhoneApplicationFrame(); RootFrame.Navigated += CompleteInitializePhoneApplication; // Assign the URI-mapper class to the application frame. RootFrame.UriMapper = new AssociationUriMapper(); // Handle navigation failures RootFrame.NavigationFailed += RootFrame_NavigationFailed; // Ensure we don't initialize again phoneApplicationInitialized = true; }
启动应用后,它将在初始化期间分配 URI 映射器。在启动任何页面之前,应用将调用 URI 映射器的MapUri 方法确定要启动的页面。URI
映射器返回的 URI 即应用所启动的页面。
启动页面时,通过使用页面的 NavigationContext 对象的 QueryString 属性,页面可以访问
URI(启动了该页面)中的所有参数。例如,以下代码将所有的 URI 参数和值都放置在 IDictionary 对象中。
C#
// Get a dictionary of URI parameters and values. IDictionary<string, string> queryStrings = this.NavigationContext.QueryString;
启动 URI
通过使用关联启动 API,您的应用可以通过启动自定义的 URI 自动启动另一个应用。为此,请使用 Windows.System 命名空间的启动器对象的 Launcher..::.LaunchUriAsync(Uri) 方法。例如,以下代码启动了一个假想Contoso 应用以显示新产品。
C#
private async void LaunchContosoNewProductsButton_Click(object sender, RoutedEventArgs rea) { // Launch URI. Windows.System.Launcher.LaunchUriAsync(new System.Uri("contoso:NewProducts")); }
当您的 URI 被传递到附带 URI 关联的接收应用,已启动 URI 中所有的保留字符都将自动进行百分比编码。例如,一个应用启动 URI“contoso:NewProducts”后,会导致另一个应用接收深层链接
URI“/Protocol?encodedLaunchUri=contoso%3ANewProducts”。
关联如何为用户工作
用户从应用启动文件或 URI 后,接下来将发生的情况取决于手机上安装了哪种应用。如果手机上的应用无法处理该特定文件或 URI 关联,用户可以选择是否获取可处理这些情况的应用。
如果特定文件或 URI 关联在手机上只注册了一个应用,当用户要打开它时,该应用将自动启动。如果用户在手机上拥有多个为文件或 URI 关联注册的应用,每次用户打开文件时,系统都会询问要使用哪个应用。
提示: |
---|
不要注册文件或 URI 关联,除非您可以使用它执行有用的操作。如果您的应用导致应用菜单频繁出现,用户可能会干脆选择卸载它来避免不断作出选择。 |
相关文章推荐
- 使用 Windows Phone 8 文件和 URI 关联的自动启动应用
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
- 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议
- 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议
- 自动启动文件和 URI 关联 (XAML)
- 背水一战 Windows 10 (98) - 关联启动: 使用外部程序打开一个文件, 使用外部程序打开一个 Uri
- Android使用URI启动应用的学习
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- 使用JAVA关联打开本地应用文件
- 用于启动 Windows Phone 8 内置应用的 URI 方案
- “应用自动启动”和“关联启动”权限
- mysql 的自动启动 使用配置文件 /etc/my.cnf
- 用于启动 Windows Phone 8 内置应用的 URI 方案
- 在MIDP2.0中使用Push注册机制,允许应用被自动启动的方法
- 启动 Windows Phone 8 内置应用的 URI 方案
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用提高nodejs调试效率