在 Windows 运行时捕获具有特定模式的 link 点击

Catch a link click with a certain pattern in Windows Runtime

我正在开发一个基于移动网站的应用程序,该应用程序在 Windows Windows Phone 8.1 的 Windows Runtime WebView 中运行。目前,我正在寻找一种方法来在应用程序的网络视图中捕获以特定模式开头的 link 次点击。在 Windows Phone Silverlight 版本中,以下是可能的:

在我的网络视图中,我显示 link 是这样的

<a href="ownstuff:bla()">Do something in the app</a>
<a href="ownstuff:blubb()">Do something different in the app</a>

在应用程序中,我使用以下代码

点击了这样一个link
MyWebView.Navigating += HandleOwnStuff;
void HandleOwnStuff(object sender, NavigatingEventArgs e) {
        String url = e.Uri.ToString();
        if(url.StartsWith("ownstuff:")) {
            // check which function has been called and do something in the app, e.g. open the camera
        }
}

不幸的是,这种方法在 WinRT 应用程序中不再可行。每当我单击这样的 link 时,启动器都会打开并显示消息 "Search for an app in the store"。 未调用 WebView 的 "NavigationCompleted" 处理程序 - 在调用 WebView 的任何处理程序之前捕获此 link 单击。

一种可行的方法是使用 UnsupportedUriSchemeIdentified 处理程序,不幸的是,它仅在 UWP 中从 Windows 10 开始可用。 另一种解决方案是完全重写我的网站,以便可以调用 ScriptNotify 处理程序——这将是太多的工作,因为该网站现在也可以在普通浏览器、Android 和 iOS 设备上运行——所以这种方法绝对不值得麻烦。

有人知道解决办法吗?谢谢

我已经与 MSFT 讨论了一段时间。您的权利,对于 win10,这就是添加该事件的原因。解决它的最佳方法是更改​​网站。