我在互联网上搜索有关在 Maui for Windows 上注册自定义 URI 的答案。
我的发现之一就是这个答案。
https://learn.microsoft.com/en-us/windows/uwp/launch-resume/handle-uri-activation
https://learn.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-protocol
我正在根据我的要求更改它。
我正在使用 daily api,所以会议是 https://demy-ia.daily.co/programming 其中programming 是房间的名称
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="daily-co">
<uap:DisplayName>demyia</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
我已将此代码放入 MauiProgram 中
#if WINDOWS
events.AddWindows(windows => windows
.OnLaunched((window, args) => {
var activatedEventArgs = Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
}));
#endif
问题是,在查看这些值时,我的 Kind 是 Launch 而不是协议,而且我没有任何 URI。
我看到了这个截图。
但是当我和我的比较时,我什么都没有。
我昨天发布了一个Queston,但是有人给我打了负分。我总是问自己,如果你不喜欢它,就不要读它,请保持礼貌
好吧,作为答案,Leon Lu - MSFT 的解决方案可以解决问题:
首先,请右键单击
Package.appxmanifest
文件,使用HTML编辑器打开。我添加以下名称前缀来做到这一点:
<Applications>
<Application Id="App" ...>
...
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="demy-ia">
<uap:DisplayName>demy-ia</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
</Application>
</Applications>
我们可以通过
appActivationArguments.Uri
获取url,在获取url之前,我们需要使用Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
来获取appActivationArguments
。
请更改事件,如以下代码:
.ConfigureLifecycleEvents(events =>
{
#if WINDOWS
events.AddWindows(windows => windows
.OnLaunched((window, args) => {
var activatedEventArgs = Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
Windows.ApplicationModel.Activation.ProtocolActivatedEventArgs appActivationArguments =activatedEventArgs.Data as Windows.ApplicationModel.Activation.ProtocolActivatedEventArgs;
if (appActivationArguments != null)
{
var uri = appActivationArguments.Uri;
}
}));
#endif
})
这是我测试过的网址
demy-ia://Addyourtestmeeting
,如果您将此网址放入浏览器并访问它,您将看到一个弹出窗口来打开您的应用程序。
顺便说一句,如果你想使用
https://demy-ia.daily.co/dedwdewdewdew
进行深度链接。请处理从 Web URL 到自定义 URI 方案的重定向:
在 Web 服务器上,配置从
https://demy-ia.daily.co/dedwdewdewdew
到 demy-ia://Addyourtestmeeting
的重定向。
注意:如果您想收到此主题的相关电子邮件通知,请按照我们的文档中的步骤启用电子邮件通知。