【问题标题】:Open UWP application when an URL is clicked in the browser在浏览器中单击 URL 时打开 UWP 应用程序
【发布时间】:2016-08-29 20:42:32
【问题描述】:

我正在开发一个带有web view 的简单UWP 页面。我想知道在浏览器中单击带有 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();
        }
    }

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

【问题讨论】:

  • 你的网址是什么样的?
  • 给协议名称不是 https
  • 是否附加了协议?它应该是协议://页面名称
  • 那是不可能的。 https 是互联网协议
  • 那么当点击https协议的链接时如何打开我的应用程序?

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


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

【讨论】:

  • 我已经试过了,但还是不行。我已经编辑了我的问题。
【解决方案3】:

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

但是当点击浏览器中的链接时,我无法使用我的应用程序打开它。

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

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

【讨论】:

  • 查看问题中的代码,他已经在尝试您在此处所说的内容。这对他不起作用。你有什么不同的推荐吗?
  • @JerryNixon-MSFT 我说他检查它是否工作的方式是错误的。我觉得很难理解他的英语,但我推断他想在浏览器中单击一个 http 链接,并想打开他的应用程序以获取该链接。我的意思是浏览器不会将 http 链接传递给操作系统。所以,他应该用其他方法检查它的工作情况
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 2016-02-13
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
相关资源
最近更新 更多