在Windows运行时中捕获具有特定模式的链接单击

本文关键字:模式 单击 链接 运行时 Windows | 更新日期: 2023-09-27 18:27:32

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

在我的网络视图中,我显示类似的链接

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

在应用程序中,我点击了一个带有以下代码的链接

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应用程序中已经不可能了。每当我点击这样的链接时,启动程序就会打开,并显示消息"在商店中搜索应用程序"。未调用WebView的"NavigationCompleted"处理程序-在调用任何WebView处理程序之前捕获此链接单击。

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

有人知道解决方案吗?谢谢

在Windows运行时中捕获具有特定模式的链接单击

我已经和MSFT讨论了一段时间。你的权利,有了win10,这就是添加该事件的原因。解决这个问题的最好方法是更改网站。