html5导航栏跳转(Html5跳转到APP指定页面的实现)
类别:Web前端 浏览量:716
时间:2021-10-12 00:25:43 html5导航栏跳转
Html5跳转到APP指定页面的实现1.设置urlschemes
urlschemes尽量设一个唯一的字符串,例如可以设为:iOS+公司英文名+ 项目工程名
比如我的设为iOSTencentTest,在浏览器中输入地址iOSTencentTest://即可跳转到我的app
2.跳转到指定页面
在使用iOSTencentTest://打开app会调用AppDelegate的代理方法
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
跳转指定页面在该方法中操作
iOSTencentTest://后面是可以添加参数的,例如iOSTencentTest://goodsDetails?id=xxxxx
goodsDetails可直接通过url.host获取
id=xxxxx 参数可直接通过url.query获取
可以根据自身需求去设置不同的host和参数。
h5那边只需要执行:
window.location.href = 'iOSTencentTest://goodsDetails?id=xxxxx'
附:
//获取Window当前显示的ViewController - (UIViewController*)currentViewController{ //获得当前活动窗口的根视图 UIViewController* vc = [UIApplication sharedApplication].keyWindow.rootViewController; while (1) { //根据不同的页面切换方式,逐步取得最上层的viewController if ([vc isKindOfClass:[UITabBarController class]]) { vc = ((UITabBarController*)vc).selectedViewController; } if ([vc isKindOfClass:[UINavigationController class]]) { vc = ((UINavigationController*)vc).visibleViewController; } if (vc.presentedViewController) { vc = vc.presentedViewController; }else{ break; } } return vc; } //NSString类别方法 //通过url.query获取参数字符 再分成字典 -(NSMutableDictionary *)getURLParameters { if (!self.length) { return nil; } NSMutableDictionary *params = [NSMutableDictionary dictionary]; if ([self containsString:@"&"]) { NSArray *urlComponents = [self componentsSeparatedByString:@"&"]; for(NSString *keyValuePair in urlComponents) { //生成key/value NSArray *pairComponents = [keyValuePair componentsSeparatedByString:@"="]; NSString *key = [pairComponents.firstObject stringByRemovingPercentEncoding]; NSString*value = [pairComponents.lastObject stringByRemovingPercentEncoding]; //key不能为nil if(key==nil|| value ==nil) continue; id existValue = [params valueForKey:key]; if(existValue !=nil) { //已存在的值,生成数组。 if([existValue isKindOfClass:[NSArray class]]) { //已存在的值生成数组 NSMutableArray*items = [NSMutableArray arrayWithArray:existValue]; [items addObject:value]; [params setValue:items forKey:key]; }else{ //非数组 [params setValue:@[existValue,value]forKey:key]; } }else{ //设置值 [params setValue:value forKey:key]; } } }else { //单个参数生成key/value NSArray *pairComponents = [self componentsSeparatedByString:@"="]; if(pairComponents.count==1) { return nil; } //分隔值 NSString *key = [pairComponents.firstObject stringByRemovingPercentEncoding]; NSString *value = [pairComponents.lastObject stringByRemovingPercentEncoding]; //key不能为nil if(key ==nil|| value ==nil)return nil; //设置值 [params setValue:value forKey:key]; } return params; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- html5 video标签
- html5canvas图形怎么打印(HTML5 Canvas 实现K线图的示例代码)
- ih5如何点击按钮跳转至网页(HTML5跳转小程序wx-open-launch-weapp的示例代码)
- html5菜单栏(html5写一个BUI折叠菜单插件的实现方法)
- html5video怎么优化(HTML5 video循环播放多个视频的方法步骤)
- html5基本标签详解(详解HTML5布局和HTML5标签)
- html5页面布局框架(html5移动端自适应布局的实现)
- html5和css3最新特性(html5中使用hotcss.js实现手机端自适配的方法)
- HTML5 audio标签
- html5创作(HTML5录音实践总结Preact)
- html5canvas功能介绍(Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 附转换公式)
- html5音频处理(recorder.js 基于Html5录音功能的实现)
- html5div怎样居中(HTML5+CSS设置浮动却没有动反而在中间且错行的问题)
- html5 spellcheck属性
- html5复制修改(HTML5实现无刷新修改URL的方法)
- 如何获取html5表单中的元素的值(html5 datalist 选中option选项后的触发事件)
- 数读 买首饰金是 投资黄金 吗 买金容易卖金难(数读买首饰金是)
- 销 售 买 卖 你真的了解这四个字了吗(销售买)
- 谢娜是得罪快乐大本营造型师了吗 全场被黑化(谢娜是得罪快乐大本营造型师了吗)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
- 释小龙晒杀青照片 多重身份惹观众期待(释小龙晒杀青照片)
- 《九牛之人降魔传》开机 演员祁高坤化身九牛之人除魔卫道(九牛之人降魔传开机)
热门推荐
- dedecms如何做弹窗(dedecms实现将表单订单发送到邮箱实例代码)
- SQL SERVER数据类型对应C#的数据类型
- docker重启报错(Docker启动为Exited状态)
- python进程管理教程(Python I/O与进程的详细讲解)
- MongoDB中的索引的操作
- letter-spacing和word-spacing区别
- html5+css样式代码(详解HTML5中CSS外观属性)
- laravel查询条件数组写法(解决Laravel 使用insert插入数据,字段created_at为0000的问题)
- linux设置监控命令(linux系统虚拟主机开启支持SourceGuardiansg11加密组件的详细步骤)
- mysql的复制原理(浅析MySQL的WriteSet并行复制)