MacOS开发-给自己的 app 添加 URL Scheme(Xcode 9之后)
文章目录
- 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之后)相关推荐
- 短信或者邮件链接打开 APP(URL Scheme)
最近项目用到了点击分享的短信或者是邮件中的URL直接跳转到APP中,如果APP未安装,直接跳转到AppStore下载页面.下面进入正题 实现方式就是通过设置APP的URL Scheme,那么如何设置呢 ...
- 给Mac版微信手动添加URL Scheme
之前写QQ版情话助手时说过,微信没有URL Scheme所以没有办法直接通过Safari浏览器打开APP我们就直接给他添加一个. URL Scheme 苹果系统中的每个app都是存在独立沙盒中,苹果选 ...
- android搜索app下载地址,如何找出APP的URL Scheme
今日壁纸 温馨提示:先看文末总结或先看(3)WEB端 什么是APP URL scheme 玩手机经常会碰到浏览器里提示即将跳转到某APP,或者微信里提醒即将打开某APP,这其中的原理,一般就是通过UR ...
- 【Android 教程系列第 12 篇】常用 App 的 URL Scheme
这是[Android 教程系列第 12 篇],如果觉得有用的话,欢迎关注专栏. App 的 URL Scheme 就像网页的 url 链接一样,可以打开 App 或跳转到相应的页面. 下面是我结合 参 ...
- 设置IOS平台和Android平台APP的URL Scheme
URL Scheme的作用 APP可以向手机操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用. 设置IOS平台的URL Scheme IOS应用在info. ...
- MobLink网页跳转app指定界面技术简介之 URL Scheme
URL Scheme是什么 由于苹果的app都是在沙盒中,相互是不能访问数据的.但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme.简单的说,URL Scheme就是一个可以让ap ...
- ios中设置URL Scheme及如何跳转到其他APP中
URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便 ...
- 浏览器URL Scheme打开APP的那些坑
URL Scheme打开APP网上有很多的具体实现,这里不重复了,只说说实际开发中遇到的坑. 1.应用A配置了scheme,应用B是可以通过url scheme直接打开应用A里配置了scheme的特定 ...
- URL Scheme app 跳转
目录 相关名词了解 具体操作步骤 一.相关名词了解 白名单:"白名单"的意义是要检查当前设备上是否安装了其他App,而不是打开其他App必须添加"白名单". 二 ...
- ionic4 中使用 url scheme 插件 点击链接打开app
ionic4 中使用 url scheme 插件 点击链接打开app 接到个新的需求,需要通过url打开应用,Google了下找到了 ionic 可以使用的 url scheme 插件 一.在使用前先 ...
最新文章
- centos7 升级 gdb
- [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝...
- Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
- c盘哪些文件可以删除_Win7下C盘哪些文件可以删除?
- .net core百万设备连接服务和硬件需求测试
- 再砸67亿!本硕博都给钱!该市带头抢人!
- C#学习笔记-ContextMenuStrip
- Monte Carlo Rendering De-noising
- 2019春季学期进度报告(十一)
- 假期无聊 就来试试用Python做一个智能识别 包教会哦 多图预警:配置Pyqt5超详细解说(designer.exe和pyuic.exe)以及项目:Python实现百度智能识别,识别各种实物
- 在线进位制计算机,2进制换算(十六进制计算器在线)
- Python实现CRAPS赌博游戏
- dp主机_miniDP转DP和type-C转DP连接线上机简单测评
- oracle io错误的是什么意思,磁盘IO错误 导致数据库故障一则
- 这些喜闻乐见的Java面试知识点,你都掌握了吗?
- 包含第k元素LIS(dp)
- HIve数仓新零售项目DWD层的构建
- Dart list数组集合类型
- wangeditor 两个editor失焦解决办法
- github实现ssh免登录操作
热门文章
- 2019-2020新闻自动挂机阅读脚本应用开发
- 人口各省预测模型matlab_流体力学/医学学科交叉:感染人口预测模型
- MatLab:数字图像处理实验
- 虚拟机未安装音频设备_如何使用虚拟音频设备录制PC的音频
- java 生成ai矢量图_AI利用自己的工具将位图转换为矢量图
- [引用]论文:基于CWM的ETL原型系统METL的设计与实现研究
- Java 抽象工厂模式(类图及实现)
- sqlplus登录指定服务器,sqlplus 指定数据库
- android修改开机动画和铃声
- dell服务器装不了无线网卡,DELL E6420无线网卡装不上去