博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS URL schema简介
阅读量:2286 次
发布时间:2019-05-09

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

0. 用途

  • URL schema用于其他 APP 或者浏览器启动此 APP 的标识

1. 添加

targets -> app - >info -> URL Types 上添加一个 item

Identifier建议采用反转域名的方法保证该名字的唯一性,比如com.yourCompany.yourApp

URL Schemes理论上随便填什么都可以,比如iOSDevApp

2. 验证

在浏览器中输入iOSDevApp://,确认后就可以跳转到APP

3. 疑问

试验下如果两个 APP 使用同一个URL Schemes,后一个注册URL Schemes的APP会被启动,APP安装后就会注册URL Schemes。

当使用第三方的平台分享或者登陆的时候,使用appkey作为URL Schemes的原理是什么,不可能说新浪需要注册N个URL Schemes提供给我们用。

4. 案例

  • 比如自定义的链接
NSString *customURL = @"iOSDevTips://?token=123abct®istered=1";- (BOOL)application:(UIApplication*)application openURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplication annotation:(id)annotation{// Check the calling application Bundle IDif([sourceApplication isEqualToString:@"com.xxx.xxxx"]){NSLog(@"Calling Application Bundle ID: %@", sourceApplication);NSLog(@"URL scheme:%@", [url scheme]);NSLog(@"URL query: %@", [url query]);returnYES;}elsereturnNO;}Calling Application Bundle ID: com.3Sixty.CallCustomURLURL scheme:iOSDevTipsURL query: token=123abct®istered=1
  • 比如一些蘑菇街,可以直接从网页上跳转到 APP 的相应页面,应该用的就是query来标识特定的页面,去请求相应的数据。应用内浏览器,测试网页:iOS and Js,点击Click me here:的按钮跳转到 Native 的页面,需要实现以下方法
- (void)webView:(WKWebView *)webViewdecidePolicyForNavigationAction:(WKNavigationAction *)navigationActiondecisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler{if(webView != self.webView) {decisionHandler(WKNavigationActionPolicyAllow);}UIApplication *app = [UIApplication sharedApplication];NSURL *url = navigationAction.request.URL;if(!navigationAction.targetFrame) {if([appcanOpenURL:url]) {[appopenURL:url];decisionHandler(WKNavigationActionPolicyCancel);}}if([url.schemeisEqualToString:@"shopman"]){if([appcanOpenURL:url]){[appopenURL:url];decisionHandler(WKNavigationActionPolicyCancel);}}decisionHandler(WKNavigationActionPolicyAllow);}

原文链接:https://www.jianshu.com/p/c030f57776eb

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

你可能感兴趣的文章
面试官:熟悉Redis吗,项目中你是如何对Redis内存进行优化的
查看>>
JVM 实战学习总结:JVM 的分代模型:年轻代、老年代、永久代
查看>>
面试官:聊聊 Spring 中的线程安全性
查看>>
一篇文教你在 Java 中利用 redis 实现分布式全局唯一标识服务
查看>>
深入浅出数据库事务和4种隔离级别
查看>>
对限频限流的思考
查看>>
15天内4面阿里,成功拿下offer,分享个人面经
查看>>
万字长文,带你深入浅出五种负载均衡策略。
查看>>
看图搞懂微服务架构
查看>>
详解:java工具之解析yaml文件
查看>>
双非末流渣渣一本年初裸辞,5面阿里最终定级P7,扎心的辛酸历程
查看>>
包教包会:搭建RocketMQ双主双从同步集群,
查看>>
赞!期待已久的《架构解密:从分布式到微服务》终于出第2版了
查看>>
5年Java程序员,五面蚂蚁险拿offer定级P7,大厂面试不过如此?
查看>>
大厂面试必问!HashMap 怎样解决hash冲突?
查看>>
颠覆认知!阿里架构师居然是这样定义微服务、分布式构架构的
查看>>
面试屡屡碰壁,痛定思痛闭关修炼!半年后4面阿里成功拿offer
查看>>
幸亏阿里学长的这份Java多线程笔记,才能让我轻松拿下阿里一面
查看>>
最全的大厂最新面试249题与笔记总结:多线程+JVM +Spring+微服务+分布式+Redis+MySQL
查看>>
吊!设计模式全解:6大设计原则+23种设计模式+设计模式PK+设计模式混编
查看>>