【问题标题】:How to catch uri calls with app selection from webview?如何通过 webview 中的应用程序选择来捕获 uri 调用?
【发布时间】:2017-10-16 09:33:32
【问题描述】:

当我将一些客户网络内容加载到我的webview 中时,我得到了应用程序选择弹出窗口,我猜它的调用和uri 使用未知协议或其他东西。我不关心内容,我只想在弹出窗口出现之前做出反应。

我尝试了以下方法,但我不会被调用

webView.NavigationStarting += WebView_NavigationStarting;

webView.ScriptNotify += WebView_ScriptNotify;

它们仅在预期时被调用,而不是在弹出窗口之前。

我是否可以订阅另一个事件,以便我可以处理它并决定是否有必要显示弹出窗口或将其标记为已处理?

【问题讨论】:

    标签: c# .net windows uwp


    【解决方案1】:

    当我将一些客户 web 内容加载到我的 web 视图中时,我得到了应用程序选择弹出窗口。

    你的截图是openwith.exe系统级应用的窗口。它将由未知应用程序uri(Name:Parameter) 方案启动。它不会调用NavigationStartingScriptNotify 事件。更多内容可以参考Handle URI activation

    我是否可以订阅另一个事件,以便我可以处理它并决定是否有必要显示弹出窗口或将其标记为已处理?

    目前,没有这样的事件来检测弹出窗口。 根据您的要求,您可以手动过滤 html 页面中的特殊 uri 方案。

    更多内容可以参考Launch the default app for a URI。并根据这些 uri 方案创建适当的过滤器。

    示例

    function myFunction() {
        var url = "test:paramter"
        var arr = url.split(":");
        if (arr[0] == "test") {
            arr[0] = "";
        }
        var url = arr.join('');
    }
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2016-03-02
    • 2015-08-15
    • 1970-01-01
    相关资源
    最近更新 更多