IOS - 如何以编程方式阻止从另一个应用程序打开一个应用程序?

Posted

技术标签:

【中文标题】IOS - 如何以编程方式阻止从另一个应用程序打开一个应用程序?【英文标题】:IOS - How do I block open one app from another app programmatically? 【发布时间】:2018-08-03 15:25:56 【问题描述】:

我正在尝试在我的应用程序的 UIWebView 本身中观看 youtube 视频。每当我点击任何网页 youtube 链接时,它都会自动重定向到 youtube 应用程序,但 youtube 的应用程序也安装在我的设备中。如何以编程方式阻止从另一个应用打开一个应用。

【问题讨论】:

你实现了网络视图委托方法吗?当 UIWebViewNavigationType 是 UIWebViewNavigationTypeLinkClicked 时,您可以返回 NO。 ***.com/a/37240425/5622566你试过了吗? 【参考方案1】:

如果您使用的是UIWebview

在您的视图控制器中添加以下委托方法。并分配webview.delegate = self

extension YourVC:UIWebViewDelegate
    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool 
        if navigationType == UIWebViewNavigationType.linkClicked 
            return false
        
        return true
    

如果您使用的是WKWebview

在您的视图控制器中添加以下委托方法。并分配webView.navigationDelegate = self

extension YourVC:WKNavigationDelegate
    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) 
        if navigationAction.navigationType == .linkActivated 
            decisionHandler(.cancel);
            return;
        
        decisionHandler(.allow);
    

【讨论】:

以上是关于IOS - 如何以编程方式阻止从另一个应用程序打开一个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 中以编程方式从另一个应用程序打开设置应用程序

ios - 从另一个功能以编程方式启用按钮

iOS:以编程方式从另一个视图调用 onTapGesture

iOS:以编程方式阻止 iCloud 备份

如何以编程方式从 iOS 应用程序打开 Apple Watch 配套应用程序

如何在 iOS 8.0+ 中以编程方式打开设备设置应用程序而不是应用程序设置