我正在开发一个带有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();
}
}
但是当点击浏览器中的链接时,我没有选择用我的应用程序打开它。 有人有想法吗?
答案 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中创建超链接并尝试打开它。
如果您真的想在应用中打开浏览器中的链接,还有很多其他方法可以实现,例如实施共享合同。