Swift open url 传值回调

简单说说吧,open url传值这个网上教程确实不少,关键是都没有说道关键点子上,把值从A传到B容易,再传回来的时候就尴尬了吧,求人不如求己,我就简单记录下吧。废话少说,直接开干。

  1. 新建两个Demo一个为Demo1,一个为Demo2,同时打开倒开info,添加一项URL types为自己的URL Scheme
image.png
image.png
  1. 确定谁给谁传值,就Demo1给给Demo2吧,然后在demo1中把demo2添加为白名单。


    image.png
  2. 搞事情了,在demo1中加个Button然后牵条线整个点击事件试试,顺带传点值

 @IBAction func btnClick(_ sender: Any) {
        
        /// 如果有中文就用
        /// addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)转一下就好了
        let stringUrl = "Demo2://testContent?id=0&title=test&content=testETH&scheme=Demo1"
        
        if let url = URL(string: stringUrl) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
    }
  1. 再demo2中的AppDelegate.swift中加入下面的代码
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        let stringUrl = "Demo1://testContent?id=6666&title=test&content=testEOS&scheme=Demo2"
        if let url = URL(string: stringUrl) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
        return true
    }
  1. 最后再到demo1中去接收我们修改过后的东西吧,一切都是那么自然
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        
        let s = UIAlertView.init(title: nil, message: url.absoluteString, delegate: nil, cancelButtonTitle: "确定")
        s.show()
        return true
    }

好啦,装逼结束,希望我的朋友路过就点个👍吧,谢谢你们的支持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,022评论 3 119
  • 废话时间: 一:时间复杂度:用来评估算法运行效率(时间)的一个式子。 一般来说:时间复杂度高的算法比复杂度低的算法...
    Ugfly阅读 370评论 0 0
  • 2018年03月19日 1.新闻话题打卡 山东信用新规,考试作弊、学术造假将被记失信 这一措施是山东对个人信任度和...
    SEHUN_NP阅读 82评论 0 0
  • 今年过年要去苏州,看望父母,和远在苏州多年的弟弟一家聚会。 女儿就特别兴奋,每天都问我什么时候出发?还有几天过年?...
    我在创业阅读 151评论 0 0