pythonista3没有url scheme_URL Scheme是如何实现app之间的跳转

项目演示

1495857647177749.gif

URL Scheme是什么

由于苹果的app都是在沙盒中,相互是不能访问数据的。但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme。简单的说,URL Scheme就是一个可以让app相互之间可以跳转的协议。每个app的URL Scheme都是不一样的,如果存在一样的URL Scheme,那么系统就会响应先安装那个app的URL Scheme,因为后安装的app的URL Scheme被覆盖掉了,是不能被调用的。

URL Schemes 的发展

URL Schemes 的发展过程可以说就是 iOS 效率工具类 App 的发展过程。

起初的苹果建立的 Apple URL Schemes 只是用于自用,里面只有邮件、电话、iTunes 搜索、Youtube 视频等一些内置服务的 URL。

个人认为 URL Schemes 第一次大火是在 2011 年末(如有异议欢迎指正),那个时期也是越狱的鼎盛时期,那个时期越狱后大家都会装的一个插件是 SBSettings[1]。越狱的人都知道每当新系统发布的时候,等待新系统的越狱发布是最撩人的,而这段时期那些「不越狱就能做到某种越狱功能」的应用经常一时间风头无两。

2011年 iOS 5 发布带来了通知中心,没过多久,出现了一大批使用 iOS 系统设置的 URL Schemes 的 App 神奇地完成了接近 SBSettings 的功能——它们可以让我们从通知中心直接跳转到某些 App 的特定界面,比如 Twitter 的发推界面。它们甚至还可以直接跳转到系统设置里的 Wi-Fi 选项。在这一批 App 中,就有如今效率软件霸主之一 Launch Center Pro 的前身——Launch Center。

但很快,这一批 App 被苹果火速下架,原因是「对通知中心的误用」。模糊的解释让开发者们摸不到头脑,这种不满一直延续到 Launcher 在 iOS 8 之后的下架事件。

总之,在这一批 App 被下架之后,玩票的都离开了,只留下了一个 Launch Center。作者似乎觉得 URL Schemes 大有可为,所以在不触碰红线(当时的红线是一不许动通知中心,二不许调用系统设置的界面)的基础上继续发力,在几个月(2012年7月)之后推出了 Launch Center Pro v1.0。

另一个注意到 iOS 上的 URL Schemes 的作用的是 Drafts 的作者 Greg Pierce。不同于 Launch Center Pro,Greg Pierce 打造的是一个以输入文字为主的效率应用,它以一个笔记本的面目示人,所以被媒体称为「Launch Center for text」。

两者大的区别在于先选动作还是先输入。Launch Center Pro 的使用方法是:先打开动作,如果需要输入的话,你可以让它跳出来一个输入框,你来输入,输入完成后跳转到相应应用。Drafts 则是先在笔记本里把东西输入了,然后再选择动作,跳转到相应应用。

好像没什么大不了的嘛……吗?这里至少有两个重要的区别:

Drafts 中输入过的内容会储存在笔记本中以留作备份,而 Launch Center Pro 里的则是动作运行完了就没了。Drafts 中输入过的内容可以通过 URL Schemes 进行多次使用或一次性发给多个应用或服务,而 Launch Center Pro 只能将输入内容发送到一个服务或应用。即除了剪切版外, Launch Center Pro 没有其它变量的概念。第三个区别不太重要:Launch Center Pro 里的输入框和 Drafts 的笔记本界面来比较很明显不是一个好的写作环境。细节上的区别还有很多,两者适用的范围随着各自的发展扩大,因此重合的那部分功能也愈发的不起眼。Launch Center Pro 和 Drafts 从那以后成为效率类应用中的双雄,不断提出更多更灵活使用 iOS 上 URL Schemes 的办法。

比如 Launch Center Pro 提出了 List 的概念,将列表的想法融入到了 URL Schemes 中,列表的每一项可以是简单的字符,又可以是一串新的复杂的 URL。使用列表可以让我们每次的输入变为更轻松的选择,对于那些重复的任务更为高效。

而 Drafts 的作者直接不满 URL Schemes 只能跳出不能跳回的问题,和 Marco Arment、Justin Williams 等人开发了 x-callback-URL 来做到跳出,并跳回这样的动作。

可以说这两款 App 对 URL Schemes 的推广和使用构思上的贡献是最突出的,现在 URL Schemes 越来越被 iOS 用户和开发者所重视,在我眼里,一款 App 是否完整系统地支持 URL Schemes 已经是判断它是否优秀的标志之一。

故事讲到这里,更重要的还是如何使用 URL Schemes。

故事里没有提到 Pythonista、Editorial 跟 Workflow,绝不是我认为这些 App 不够腕儿,而是它们做的事情重点已经不在于 URL Schemes 了。

URL Scheme有什么作用

那么MobLink网页跳转app指定界面有什么作用呢?我们所使用的每一个app就相当于一个功能,app的跳转可以使得每个app就像一个功能组件一样,帮助我们完成需要做的事情,比如三方支付,搜索,导航,分享等等。

创建URL Scheme

1、首先在Info.plist中添加一行,选择URL types,效果如下图所示:

14955386608306.jpg

2、在展开的Item 0中填写URL identifier,这个用来唯一标识用户自定义的URL Scheme,推荐使用域名的反转形式,如: shenzoom

14955393194315.jpg

3、在Item 0中添加新的一行,选择URL Schemes

14955393461464.jpg

4、展开URL Schemes,在Item 0中输入自定义的Scheme的名称。在这里只需要输入自定义的Scheme的名称即可,不需要加上://,例如这里输入的是fb149753595510548,那么对应的自定义的URL就是fb149753595510548://,这里可以输入多个。 最后一个完整的示例效果图:

14955393665539.jpg

使用URL Scheme

1、在Safari中使用在Safari中直接在浏览器的地址栏中输入shenzoom://,即可启动刚才的应用

2、在其他的应用程序中使用在需要调用的地方使用下面的代码即可实现调用NSString *customURL = @"shenzoom://";

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];

3、参数的传递NSString *customURL = @"shenzoom://?token=123abct?istered=1";

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];

在AppDelegate中可以实现下面的方法- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

上面的方法直接 返回YES 就可以

解析- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

if ([sourceApplication isEqualToString:@"com.devzeng.demo.urlscheme"])

{

NSLog(@"调用的应用程序的Bundle ID是: %@", sourceApplication);

NSLog(@"URL scheme:%@", [url scheme]);

NSLog(@"URL query: %@", [url query]);

return YES;

}

else

{

return NO;

}

}

在你的动作执行完成了之后,有可能时需要返回到原有app的,这样就需要你的app跳转协议的url里面应该能传入调用者app的跳转协议,这样用户跳转到你的app完成动作后就能跳转回去了关于 iOS 中常见的白名单的说明可以参考:常见白名单设置

URL Schemes 的衰败

苹果的各项改进一点点蚕蚀了 URL Schemes 的领域,但目前宣告 URL Schemes 死刑还为时尚早。

6s 之后的设备大概都会支持 3D Touch,它的特征之一就是从 Homescreen 的 App 图标上直接进入该 App 的具体某个功能了。这个功能也让很多人兴奋了一把,虽说会用 URL Schemes 的人早就做到类似的事了。不过,既然官方已经有了这样的功能,为什么还要用 URL Schemes?

同样,在 iOS 9 中,我们还可以用 Siri 建立关于 App 的提醒事项,来做到以前只有用 Launch Center Pro 和 Due 这样的 App 才能做到的定时打开 App。而且 iPhone 6s 还可以做到不在充电状态下使用 Hi, Siri 这样我们要建立一个提醒事项或者闹铃也无比简单,只要说一声「Hi, Siri. 半小时以后叫我。」就能定一个计时器。在这种比较之下 Due 这样的 App 的作用显然是被大大地削弱了。除此之外还有通知中心部件,Sharesheet 的出现都在一定程度上代替了 URL Schemes 的作用,削弱了其价值。 但按照目前的状态,充其量只能说 URL Schemes 在衰败,还远不能宣判其死刑。

3D Touch 和 URL Schemes 重复的地方只有一部分复杂 URL Schemes 的功能:一些复杂 URL Schemes 的功能 3D Touch 没有涵盖,反过来 3D Touch 也有一些可以做到的事通过复杂 URL Schemes 做不到。但在复杂 URL Schemes 之上的变形 URL Schemes 跟 x-callback-URL 都是 3D Touch 无法做到的。

Siri 确实非常好用,我每天都用它很多次。所以我知道,如果不戴耳机,它是通过扬声器跟你交流的,这种时候它听错了你说错了,都得来回矫情半天,周围有人的话场面会变得很尴尬。所以很多场合,通过 Due 的 URL Schemes,直接从 Dock 中的 Launch Center Pro 里找到一个 Timer 或添加一个提醒其实更舒服。

我承认 URL Schemes 如今已无往日辉煌,但它在 iOS 上的效率方面的作用能不能被完全替代,目前也未可知。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351944.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

IPAD2 5.1.1越狱后的屏幕不能自动旋转~~~

己顶,出现这问题的原因是因为越狱安装了插件的原因。问题解决了,大家没有遇到类似的问题吗?问题出在大家都装了一个SBSettings的插件,解决办法就是在这个插件的ISO 5 Notification中打开Disable Toggles 和 Separate List且在Set …

体验下Xcode5与ios7

IOS7的最新更新。 1、自主选择默认地图应用苹果在iOS 6中移除了谷歌地图,使用了自家研发的苹果地图。不得不说,这款自带的地图应用可以说烂到了一定的程度,自发布之后便问题不断。正因如此,苹果应该允许用户在iPhone、iPod Touch…

JVM暂时私有

Jvm: 类加载器分类 引导类加载器:BootStrapClassLoader(出于安全考虑,Bootstrap启动类加载器只加载包名为java、javax、sun等开头的类) 自定义类加载器:Extension ClassLoader AppClassLoader (Tomcat也自定…

android 隐私伪装原理,加锁、隐藏和伪装!三招严防私密App被偷看

随着手机等智能设备的普及,人们的物质生活得到极大的丰富,但随之而来的隐私泄露问题却使得每一个人都几乎变得“透明”。同事、朋友有意无意的把玩起你的手机,随意翻看你的相册、甚至点开一些私密应用如微信、陌陌等,隐私无处躲藏…

蓝桥杯2022年第十三届决赛真题-出差

题目描述 A 国有 N 个城市,编号为 1 . . . N。小明是编号为 1 的城市中一家公司的员工,今天突然接到了上级通知需要去编号为 N 的城市出差。 由于疫情原因,很多直达的交通方式暂时关闭,小明无法乘坐飞机直接从城市 1 到达城市 N&a…

2. 股票的操作知识

》》点赞,收藏关注,理财&技术不迷路《《 目录: 2.1 股票的交易 2.1.1 股票交易模式——在和谁交易? 这个问题看起来简单,但很多初学者其实是没搞明白的,所以花点时间解释下(真是苦口婆心…

交易系统开发(一)——交易系统简介

一、交易过程简介 A股市场,投资者必须通过经纪公司交易柜台才能连接交易所,即交易订单从客户策略服务器发至经纪公司交易柜台,交易柜台内部处理后发往交易所,交易所确认报单后发送回报给交易柜台,再从柜台发送至客户策…

QuantFabric量化交易系统架构

一、交易所架构 1、证券交易架构 证券交易包括交易所、买方、卖方,证券交易解决方案架构如下: 卖方是把各种资产包装成产品并提供给市场的实体,如各大证券公司(中信证券、中信建投、海通证券、国泰君安证券等)、期货…

Easytrader 超简单的股市自动交易神器

往期推荐 量化投资实战教程(1)—基于backtrader的简单买入卖出策略 量化投资原来这么简单(2)—MACD策略(26.9%) 量化投资原来这么简单(3) —A股回测MACD策略 Python 量化投资原来这么简单(4) —KDJ 策略 Python 量化投资原来这么简单(5) — A股回测KDJ策略 Python 量化投资原来…

【easyTrader源码分析1】源码结构梳理

开篇 简单说一下为什么想写这个系列: 我个人对自动化交易比较感兴趣,他山之石,可以攻玉,搞清楚easyTrader,就搞清楚了市面上大部分自动交易方法。实践是检验真理的唯一标准,一个无法实盘的量化交易系统&a…

股票入门知识

目录 01-申请账户 02-行情软件 03-同花顺界面 04-股票规则 05-买股票步骤 小伙伴们大家好,我是Gao,很高兴今天以这样的形式与大家见面。在过去的2020,我经常和朋友聊天,打游戏,从他们那里也得到了很多信息。在一次…

易观千帆 | 2023年3月证券APP月活跃用户规模盘点

易观:2023年3月证券服务应用活跃人数14131.58万人,相较上月,环比增长0.61%,同比增长0.60%;2023年3月自营类证券服务应用Top10 活跃人数6221.44万人,环比增长0.08%;2023年3月第三方证券服务应用T…

上海亚商投顾:沪指震荡调整 酒店等消费股逆势活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 沪指今日震荡盘整,创业板指V型反弹,上证50跌超1%,保险、银行、券商等金融股下挫…

上海亚商投顾:沪指尾盘快速反弹微幅收跌 6G概念大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日震荡调整,临近尾盘集体回升,石油、保险等权重蓝筹走低,上证50盘中…

上海亚商投顾:沪指震荡反弹涨1.2% 中国移动创历史新高

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指午后涨超1%,长阳反包上周五阴线,创业板指盘中则跌逾…

微信数据差点丢失,同花顺崩了,中心化弊端频现,IPFS解决数据存储难题

此前看过马化腾的一次演讲,在《数字经济的趋势与探索》为主的演讲中,马化腾说了一件令人后怕的事情,他说在2015年的时候,我们的微信数据差点就没了。 事情源于2015年的天津港爆炸事件,那时腾讯在天津建设有当时亚洲最…

性能优化记录

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ 前言 最近零零散散的对刚接手的一个新项目做了一些优化,白屏、打包相关的内容都涉及到了,写一篇文章来记录一下。 白屏相关 DNS…

几句话说清楚数据库的基本范式

第一范式 1NF:属性不能再被拆分。 人(身份证号, 姓名, 性别, 联系方式) 不满足 1NF因为联系方式包含了电话号码、电子邮箱、微信、QQ 等人(身份证号, 姓名, 性别, 电话号码) 满足 1NF 第二范式 2NF:不存在非主属性对主键的部分函数依赖关系。 R(A, B,…

创新需求:台灯加装语音识别芯片,打造智能化生活方式

为了满足人们对于智能化生活的需求,现在有一种创新的需求——为台灯加装语音识别芯片,从而实现远程控制、语音操控等更为智能的功能。 科技行业的快速发展,使得语音识别芯片也越来越普及。它们可以使电子产品具有智能化、人性化的交互方式。…

GitHub进不去或者响应满的轻松提速教程

1.先打开记事本用管理员身份运行,打开hosts hosts文件路径:C:\Windows\System32\drivers\etc\hosts,选所有文件,选中hosts文件 打开就是这样 如果打不开,修改一下文件的属性为可编辑 2.通过 https://www.ipaddress.com…