防止通用链接在 `WKWebView`/`UIWebView` 中打开 [英] Prevent universal links from opening in `WKWebView`/`UIWebView`

查看:35
本文介绍了防止通用链接在 `WKWebView`/`UIWebView` 中打开的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当用户点击 WKWebView 中的通用链接时,将打开相应的应用程序(如果已安装).

When user tap on a universal link in WKWebView, the corresponding app will be opened (if installed).

这在 Apple 搜索编程指南

如果您实例化 SFSafariViewController、WKWebView 或 UIWebView 对象来处理通用链接,iOS 会在 Safari 中打开您的网站,而不是打开您的应用程序.但是,如果用户从嵌入式 SFSafariViewController、WKWebView 或 UIWebView 对象中点击通用链接,iOS 会打开您的应用.

If you instantiate a SFSafariViewController, WKWebView, or UIWebView object to handle a universal link, iOS opens your website in Safari instead of opening your app. However, if the user taps a universal link from within an embedded SFSafariViewController, WKWebView, or UIWebView object, iOS opens your app.

在我的应用中,我有一个 WKWebView,但我不希望用户离开我的应用.我想处理我的 WKWebView 中的链接.

In my app, I have a WKWebView, but I don't want the user to go out of my app. I want to handle the link within my WKWebView.

如何防止通用链接打开?或者我可以知道一个 URL 是否可以被其他应用处理?

How do I prevent universal link from opening? Or can I know if a URL could be handle by other apps?

推荐答案

WebKit 源代码:

sourcecode for WebKit:

static const WKNavigationActionPolicy WK_API_AVAILABLE(macosx(10.11), ios(9.0)) _WKNavigationActionPolicyAllowWithoutTryingAppLink = (WKNavigationActionPolicy)(WKNavigationActionPolicyAllow + 2);

如果您使用 WKWebView,只需使用 WKNavigationActionPolicyAllow + 2 而不是 WKNavigationActionPolicyAllow

if you are using WKWebView, just use WKNavigationActionPolicyAllow + 2 instead of WKNavigationActionPolicyAllow

这篇关于防止通用链接在 `WKWebView`/`UIWebView` 中打开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆