文章目录

  • 1.0 Xcode9之前配置
  • 1.1 Xcode9及之后需要在项目的info栏配置URL types
  • 2.在代码中设置识别方法
  • 3.运行程序
  • 4.在浏览器输入配置好的URL Schemes
  • 5.点击打开,即可调起我们自己的程序
  • 参考资料
  • URL Scheme是什么
    由于苹果的app都是在沙盒中,相互是不能访问数据的。但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme。简单的说,URL Scheme就是一个可以让app相互之间可以跳转的协议。每个app的URL Scheme都是不一样的,如果存在一样的URL Scheme,那么系统就会响应先安装那个app的URL Scheme,因为后安装的app的URL Scheme被覆盖掉了,是不能被调用的。
  • URL Scheme有什么作用
    那么app之间的跳转有什么作用呢?我们所使用的每一个app就相当于一个功能,app的跳转可以使得每个app就像一个功能组件一样,帮助我们完成需要做的事情,比如三方支付,搜索,导航,分享等等。
  • URL Scheme怎么使用
    要跳转到别人的app,就要知道别人的app的跳转协议是什么,需要传入什么参数,我们常见的跳转协议有下面这些:
    1.打开Mail[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://info@icloud.com"]]2.打开电话[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://18688886666"]];3.打开SMS[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:18688886666"]];

所以,如果我们希望别人打开我们的app,只要在plist文件中配置一下你的跳转协议即可

1.0 Xcode9之前配置

在 Info.plist 中配置CFBundleURLTypes(URL Types),如下所示:

源代码模式如下:

1.1 Xcode9及之后需要在项目的info栏配置URL types

示例配置如下所示:(本文中假设要设置URL Schemes为testSchemes

2.在代码中设置识别方法

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {[[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];}
//处理url事件
- (void)handleURLEvent:(NSAppleEventDescriptor)theEvent withReplyEvent:(NSAppleEventDescriptor)replyEvent {NSString* path = [[theEvent paramDescriptorForKeyword:keyDirectObject] stringValue];[[NSAlert alertWithMessageText:@"URL Request" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@", path] runModal];
}

3.运行程序

先运行一次程序,以便URL Schemes注册到系统。

4.在浏览器输入配置好的URL Schemes

如本文所示,在浏览器输入testSchemes://request=test&arguments=success

'//'后面可以根据需要输入自己的控制参数,弹出如下提示窗口:

5.点击打开,即可调起我们自己的程序


可以通过对这个 URL 进行判断,例如根据不同的 Host,不同的 Query String 来执行不同的动作。
在动作执行完成之后,有可能时需要返回到原app,这样就需要你的app跳转协议的url里面传入调用者app的跳转协议,这样用户在跳转到你的app完成动作之后就能跳转回调用app了。

参考资料

https://www.jianshu.com/p/eed01a661186
https://blog.csdn.net/lovechris00/article/details/77896410

MacOS开发-给自己的 app 添加 URL Scheme(Xcode 9之后)相关推荐

  1. 短信或者邮件链接打开 APP(URL Scheme)

    最近项目用到了点击分享的短信或者是邮件中的URL直接跳转到APP中,如果APP未安装,直接跳转到AppStore下载页面.下面进入正题 实现方式就是通过设置APP的URL Scheme,那么如何设置呢 ...

  2. 给Mac版微信手动添加URL Scheme

    之前写QQ版情话助手时说过,微信没有URL Scheme所以没有办法直接通过Safari浏览器打开APP我们就直接给他添加一个. URL Scheme 苹果系统中的每个app都是存在独立沙盒中,苹果选 ...

  3. android搜索app下载地址,如何找出APP的URL Scheme

    今日壁纸 温馨提示:先看文末总结或先看(3)WEB端 什么是APP URL scheme 玩手机经常会碰到浏览器里提示即将跳转到某APP,或者微信里提醒即将打开某APP,这其中的原理,一般就是通过UR ...

  4. 【Android 教程系列第 12 篇】常用 App 的 URL Scheme

    这是[Android 教程系列第 12 篇],如果觉得有用的话,欢迎关注专栏. App 的 URL Scheme 就像网页的 url 链接一样,可以打开 App 或跳转到相应的页面. 下面是我结合 参 ...

  5. 设置IOS平台和Android平台APP的URL Scheme

    URL Scheme的作用 APP可以向手机操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用. 设置IOS平台的URL Scheme IOS应用在info. ...

  6. MobLink网页跳转app指定界面技术简介之 URL Scheme

    URL Scheme是什么 由于苹果的app都是在沙盒中,相互是不能访问数据的.但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme.简单的说,URL Scheme就是一个可以让ap ...

  7. ios中设置URL Scheme及如何跳转到其他APP中

    URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便 ...

  8. 浏览器URL Scheme打开APP的那些坑

    URL Scheme打开APP网上有很多的具体实现,这里不重复了,只说说实际开发中遇到的坑. 1.应用A配置了scheme,应用B是可以通过url scheme直接打开应用A里配置了scheme的特定 ...

  9. URL Scheme app 跳转

    目录 相关名词了解 具体操作步骤 一.相关名词了解 白名单:"白名单"的意义是要检查当前设备上是否安装了其他App,而不是打开其他App必须添加"白名单". 二 ...

  10. ionic4 中使用 url scheme 插件 点击链接打开app

    ionic4 中使用 url scheme 插件 点击链接打开app 接到个新的需求,需要通过url打开应用,Google了下找到了 ionic 可以使用的 url scheme 插件 一.在使用前先 ...

最新文章

  1. centos7 升级 gdb
  2. [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝...
  3. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
  4. c盘哪些文件可以删除_Win7下C盘哪些文件可以删除?
  5. .net core百万设备连接服务和硬件需求测试
  6. 再砸67亿!本硕博都给钱!该市带头抢人!
  7. C#学习笔记-ContextMenuStrip
  8. Monte Carlo Rendering De-noising
  9. 2019春季学期进度报告(十一)
  10. 假期无聊 就来试试用Python做一个智能识别 包教会哦 多图预警:配置Pyqt5超详细解说(designer.exe和pyuic.exe)以及项目:Python实现百度智能识别,识别各种实物
  11. 在线进位制计算机,2进制换算(十六进制计算器在线)
  12. Python实现CRAPS赌博游戏
  13. dp主机_miniDP转DP和type-C转DP连接线上机简单测评
  14. oracle io错误的是什么意思,磁盘IO错误 导致数据库故障一则
  15. 这些喜闻乐见的Java面试知识点,你都掌握了吗?
  16. 包含第k元素LIS(dp)
  17. HIve数仓新零售项目DWD层的构建
  18. Dart list数组集合类型
  19. wangeditor 两个editor失焦解决办法
  20. github实现ssh免登录操作

热门文章

  1. 2019-2020新闻自动挂机阅读脚本应用开发
  2. 人口各省预测模型matlab_流体力学/医学学科交叉:感染人口预测模型
  3. MatLab:数字图像处理实验
  4. 虚拟机未安装音频设备_如何使用虚拟音频设备录制PC的音频
  5. java 生成ai矢量图_AI利用自己的工具将位图转换为矢量图
  6. [引用]论文:基于CWM的ETL原型系统METL的设计与实现研究
  7. Java 抽象工厂模式(类图及实现)
  8. sqlplus登录指定服务器,sqlplus 指定数据库
  9. android修改开机动画和铃声
  10. dell服务器装不了无线网卡,DELL E6420无线网卡装不上去