iOS - 控制“$App 想要打开 $Another App”对话框

Posted

技术标签:

【中文标题】iOS - 控制“$App 想要打开 $Another App”对话框【英文标题】:iOS - Control over "$App wants to open $Another App" dialogiOS - 控制“$App 想要打开 $Another App”对话框 【发布时间】:2021-01-21 18:21:36 【问题描述】:

在我的应用程序中,我具有用户可以打开另一个应用程序的功能,我们将其称为“App2”。如果设备上不存在 App2,则用户将出现我创建的应用不可用警报,我们将其称为 Alert1。

但是,如果设备上存在 App2 并且用户尝试打开它,则会显示 Apple 的“$App 想要打开 App2”对话框。如果用户在此单击“取消”,回调将执行我的代码以显示 Alert1。

我不希望我的应用在用户单击 Apple 对话框上的“取消”时显示 Alert1。有没有办法控制苹果的对话框?

下面是我的代码:

        if let url = urlComponents.url 
            UIApplication.shared.open(url, completionHandler:  success in
                if !success 
                    showAppNotAvailableAlert(url.absoluteString, actionLabel: action.label)
                
            )
            return
        

【问题讨论】:

【参考方案1】:

试试

        if let url = urlComponents.url 
            if UIApplication.shared.canOpenURL(url) 
                UIApplication.shared.open(url, completionHandler:  didURLOpen in
                    if !didURLOpen 
                        debugPrint("User pressed cancel button")
                    
                )
            
            else 
                showAppNotAvailableAlert(url.absoluteString, actionLabel: action.label)
            
            return
        

想法是使用canOpenURL检查应用程序是否存在,如果存在则尝试打开应用程序并在完成块中处理错误

【讨论】:

你根本不需要返回这里:) 我被其他一些方法搞砸了,对不起。你的回答很好。这是一个小的改进 - 将“成功”更改为“urlWasOpened”之类的内容 - 它将更具可读性和清晰性。

以上是关于iOS - 控制“$App 想要打开 $Another App”对话框的主要内容,如果未能解决你的问题,请参考以下文章

树莓派点灯笔记(论如何学好控制IO输出)(人脸识别IO控制)

树莓派点灯笔记(论如何学好控制IO输出)(人脸识别IO控制)

[ IOS ] iOS-控制器View的创建和生命周期

iOS 7 中的 iOS 6 滑动推送控制器动画

iOS开发:iOS中的多控制器管理

iOS开发:iOS中的多控制器管理