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; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- webui控件在前端开发中的作用(HTML5 weui使用笔记)
- html5的文件类型声明(浅析HTML5中的download属性使用)
- html5中提供的绘图元素(使用Html5中的cavas画一面国旗)
- html5加入图片(HTML5 图片预加载的示例代码)
- html5游戏新手引导开发(使用数据结构给女朋友写个Html5走迷宫游戏)
- html5自动轮播图代码(HTML5播放实现rtmp流直播)
- html5div怎样居中(HTML5+CSS设置浮动却没有动反而在中间且错行的问题)
- html5如何控制内容(html5拖拽应用记录及注意点)
- html5隐藏数字(HTML5去掉输入框type为number时的上下箭头的实现方法)
- html5实时通讯(使用Html5 Stream开发实时监控系统)
- ih5如何点击按钮跳转至网页(HTML5跳转小程序wx-open-launch-weapp的示例代码)
- html53d效果代码(HTML5 直播疯狂点赞动画实现代码 附源码)
- html5定位教学(Html5 webview元素定位工具的实现)
- 如何使用html5的canvas图(html5 canvas实现给图片添加平铺水印)
- HTML5面试题
- html5 canvas touch(html5 canvas手势解锁源码分享)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
- 艺人吴卓羲10年警察生涯,演足10年阿Sir,系咩玩法(艺人吴卓羲10年警察生涯)
- 菲律宾潜水(菲律宾潜水价格)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
热门推荐
- line-height 百分比与数值的区别
- php各种绕过姿势(php面试实现反射注入的详细方法)
- react子组件的动态参数(浅谈React Component生命周期函数)
- mysql8.0安装版安装详细教程(mysql 8.0.24版本安装配置方法图文教程)
- ASP.NET中XML与DataSet的相互转换
- html5做app流程(html5唤醒APP小记)
- django mysql设置(Django框架使用mysql视图操作示例)
- thinkphp伪静态实例(thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解)
- nginx优化安全设置(nginx优化的六点方法)
- 宝塔linux面板安装(宝塔Linux控制面板专业版破解步骤亲测可用)