【问题标题】:Windows Phone Custom URIWindows Phone 自定义 URI
【发布时间】:2014-05-31 13:23:14
【问题描述】:

在我的 windows phone 8 应用程序中,我使用自定义 uri 关联通过我的手机启动另一个应用程序。

i.e

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

但我的应用因此无法获得商店认证。测试团队告诉您应用程序在执行此操作时意外终止。 现在,我不知道如何处理这个问题。 如果我正在启动的应用程序未安装在手机上,有什么方法可以抛出异常? 或者我应该尝试其他方法,以便完成我的任务并且应用程序也获得商店认证。

【问题讨论】:

    标签: windows-phone-8 windows-phone windows-phone-8.1


    【解决方案1】:

    您不需要像其他答案中所述将启动包装在 try/catch 中或检查成功。只要您调用 LaunchUriAsync,平台就会接管并自动处理未安装应用程序的可能性,方法是询问用户是否希望在商店中搜索。

    需要仔细检查的几件事:

    1) 确保您可以在导航到 Sixtag 后成功返回您的应用。

    2) 确保您对 LaunchUriAsync 的调用是用户操作的直接结果(例如,点击按钮)

    【讨论】:

    • 您的第二点可能是原因。我在文本框的更改事件中启动了“sixtag”。现在,我已将此启动移动到单击按钮事件并重新提交应用程序。祈祷,希望它通过认证。
    • 确实有效,非常感谢!!你还知道 uri for facebook messenger(windowsphone.com/en-in/store/app/messenger/…) 吗?我搜索了很多,但我无法找到它。
    【解决方案2】:
    try
    { 
      await Windows.System.Launcher.LaunchUriAsync(new Uri("sixtag:")); 
    }
    catch
    { 
      MessageBox.Show("please install Sixtag from the app store","AppMissing", MessageBoxButton.OK); 
    }
    

    您也许可以显示另一个按钮,然后单击直接导航到应用商店。看看这是否能解决你的问题。如果可以,请投票:)

    【讨论】:

    • 我认为这不是问题所在。如果设备上未安装该应用程序,它会自动显示一条消息,询问您是否要在商店中搜索将打开该 Uri 的应用程序。
    • 我已经尝试过 try-catch 但没有帮助。是的,我注意到如果手机上没有安装应用程序,那么 API 本身会显示消息。但我不明白应用程序意外终止的原因可能是什么。
    【解决方案3】:

    您需要按照 here 所示进行处理。同时读出那里给出的备注。

    【讨论】:

    • 我已根据这些评论进行了更改并重新提交了该应用程序。让我们看看它是否有效。
    • id 没有用,他们以同样的原因拒绝了我的应用程序,即 5.1.2 - 应用程序关闭他们拒绝我的应用程序是因为我的应用程序从中启动了另一个应用程序吗??