美文网首页
Swift_APP唤起APP

Swift_APP唤起APP

作者: Mccc_ | 来源:发表于2017-12-26 08:40 被阅读178次

    做微信和支付宝支付的时候,好奇是如何在app内能指定打开哪个app的,以及如何做信息传递的?

    好奇设置的 URL schemes 是干什么用的? A5AE5335-2670-486B-B29E-D1C18008A3E1.png

    一. 什么叫 URL Scheme?

    • URL http://www.baidu.com 我们都知道是一个链接或者网址。 Schemes 就相当于http://www.baidu.com 中的最初位置,即://之前的那段字符。比如http://www.baidu.com这个网址的Schemes是http

    • iOS有个特性就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme用于从浏览器或其他应用中启动本应用。常见的分享和支付到第三方之间的跳转都是基于Scheme的。

    • 在以本地应用为主的 iOS 上,我们可以像定位一个网页一样,用一种特殊的 URL 来定位一个应用甚至应用里某个具体的功能。而定位这个应用的,就应该这个应用的URL 的 Schemes 部分,也就是开头儿那部分。比如
      短信 sms://
      电话 Phone: tel://
      邮箱 Mail: message://
      日历 Calendar: calshow://
      地图 Maps: maps://
      iTunes Store: itms://
      App Store: itms-apps://
      iBooks: ibooks://
      Game Center: gamecenter://

    二. 项目中的配置描述

    1. 两个项目A和B。A项目是动作发出者,B项目是动作接受者。也就是说在A项目中唤起B项目。
    1. B项目的配置
    设置schemes
    1. A项目中配置


      添加 LSApplicationQueriesSchemes
    2. A项目中唤起B项目的操作
            let str = "achao://hello"
            let url = URL.init(string: str)
    
            if UIApplication.shared.canOpenURL(url!) {
                UIApplication.shared.openURL(url!)
            } else {
                print("不可以打开")
            }
    

    三. 注意点

    1.模拟器 拉不起来 要用 真机

    1. -canOpenURL: failed for URL: “xxx://” - error: “This app is not allowed to query for scheme xxx”
      的原因是没设置LSApplicationQueriesSchemes

    相关文章

      网友评论

          本文标题:Swift_APP唤起APP

          本文链接:https://www.haomeiwen.com/subject/hwsoixtx.html