博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URL Scheme
阅读量:4141 次
发布时间:2019-05-25

本文共 1584 字,大约阅读时间需要 5 分钟。

文章目录

前言

由于苹果推出了“沙盒机制”,各个APP之间不能互相访问,但是我们在使用时经常会出现APP之间跳转的情况,这就是URL Scheme的用处了

简介

URL Scheme类似于URL,可以通过该APP的URL Scheme来定位到该APP,当然定位只是最基本的用法

概览

things:///add?title=正文内容&note=备注

  1. 连接头:things,它是启动一个应用的URL,比如:weixin
  2. 连接头和命令之间的:,还有//或者///
  3. 动作:add,指打开该APP后进行的动作
  4. 动作和参数之间的?
  5. 参数:titlenote
  6. 参数和值之间同样使用=
  7. 值:正文内容和备注(参数和值的使用类似于URL)
  8. 一组参数和另一组参数之间是&

细则

  1. Scheme
    对于URL来说它就是协议,但是在iOS里就是启动一个应用的URL,如果单纯只是想启动一个应用的URL使用“连接头+冒号”就可以,例如:weixin:
  2. 斜线数量
    举个例子,我在某平台登录了AB两个账号,现在登的是A号,但是想使用B号发布文章,就可以用things://B/post,将会直接使用B号并且在发布文章页面,而如果是things:///post,就不会切换到B号。也就是说/////的一种省略使用场景的形式

URL Scheme的用法

  1. 添加

    在这里插入图片描述

  2. 使用

查看用户是否安装该APP

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"***://***"]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"***://***"]]; }else{
//提示用户未安装app }

如果其他APP打开了自己的APP,也会触发自己的代理方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url NS_DEPRECATED_IOS(2_0, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary
*)options NS_AVAILABLE_IOS(9_0); // no equiv. notification. return NO if the application can't open for some reason

为了防止APP疯狂遍历用户手机上的APP,窥探隐私,iOS 9后苹果为URL Scheme添加了白名单,开发者需要在白名单中注册自己APP要用到的URL Scheme,而白名单是有数量限制的,最多50个,在iOS 9中不在白名单中注册的话,利用URL Scheme是打不开其他APP的

参考文献

转载地址:http://gkkti.baihongyu.com/

你可能感兴趣的文章
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
1062 Talent and Virtue (25 分)
查看>>
1061 Dating (20 分)
查看>>
1060 Are They Equal (25 分)
查看>>
83. Remove Duplicates from Sorted List(easy)
查看>>
88. Merge Sorted Array(easy)
查看>>
leetcode刷题191 位1的个数 Number of 1 Bits(简单) Python Java
查看>>
leetcode刷题198 打家劫舍 House Robber(简单) Python Java
查看>>
NG深度学习第一门课作业2 通过一个隐藏层的神经网络来做平面数据的分类
查看>>
leetcode刷题234 回文链表 Palindrome Linked List(简单) Python Java
查看>>
NG深度学习第二门课作业1-1 深度学习的实践
查看>>
Ubuntu下安装Qt
查看>>