在浏览器中点击URL时打开UWP应用程序

时间:2016-05-04 12:03:03

标签: c# url browser webview win-universal-app

我正在开发一个带有UWP的简单web view页面。我想知道如何在浏览器中单击带有https协议的URL时打开我的应用程序。我已经尝试过了:

Package.appmanifest

 <uap:Extension Category="windows.protocol">
      <uap:Protocol Name="https">
        <uap:Logo>Assets\Logo.png</uap:Logo>
        <uap:DisplayName>test</uap:DisplayName>
      </uap:Protocol>
 </uap:Extension>

App.xaml.cs

protected override void OnActivated(IActivatedEventArgs args)
    {
        if (args.Kind == ActivationKind.Protocol)
        {
            // Retrieves the activation Uri.
            var protocolArgs = (ProtocolActivatedEventArgs)args;
            var uri = protocolArgs.Uri;

            var frame = Window.Current.Content as Frame;

            if (frame == null)
                frame = new Frame();

            // Navigates to MainPage, passing the Uri to it.
            frame.Navigate(typeof(MainPage), uri);
            Window.Current.Content = frame;

            // Ensure the current window is active
            Window.Current.Activate();
        }
    }

但是当点击浏览器中的链接时,我没有选择用我的应用程序打开它。  有人有想法吗?

3 个答案:

答案 0 :(得分:1)

您无法将应用程序绑定到协议内部(例如http / https)。

答案 1 :(得分:0)

按照这篇文章,您可以使用URI方案https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/handle-uri-activation

来完成

答案 2 :(得分:0)

我认为你所做的是正确的,可以将应用程序绑定到http协议(根据this)。

  

但是当点击浏览器中的链接时,我没有选择用我的应用程序打开它。

我认为当您从浏览器以外的其他应用程序激活协议时,将调用该应用程序。所有浏览器都在内部管理http:https:和其他类似协议。只有少数协议(如magnet:链接或mailto:)会传递给操作系统。因此,请尝试通过点击其他应用中的链接来检查您的应用是否有效。一个简单的例子可以是在MS Word中创建超链接并尝试打开它。

如果您真的想在应用中打开浏览器中的链接,还有很多其他方法可以实现,例如实施共享合同。