iOS一个app打开另一个app

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS一个app打开另一个app相关的知识,希望对你有一定的参考价值。

参考技术A 判断本机是否安装
之后通过OpenURL直接打开就可以
具体的identifier 和 URL Schemes可以查看下图
注意 是在被打开的app中设置这两个参数

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

【中文标题】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打开另一个app的主要内容,如果未能解决你的问题,请参考以下文章

iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)

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

app打开另一个app

android一个app打开另一个app的指定页面

iOS中使用Scheme实现不同App之间的跳转

Android 产品研发-->App 跳转另一个 App 指定页面