iOS HTML5的JS交互
//webView与H5点击交互走的代理
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL * url = [request URL];
NSString * urlStr = url.absoluteString;
NSString * protocolPrefix = @"scheme";//和后台定义好的字符
[self H5Js:protocolPrefix url:urlStr];
return YES;
}
//数组分离参数 开始进行关键字提取以及相关操作
-(void)H5Js:(NSString *)protocolPrefix url:(NSString *)urlStr
{
if ([[urlStr lowercaseString]hasPrefix:protocolPrefix])
{
urlStr = [urlStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSArray * components = [urlStr componentsSeparatedByString:@":"];//以":"截取字符
NSArray * shareUrl = [urlStr componentsSeparatedByString:@"?"];
// NSLog(@"%@",components);
NSString * prefix = components[1];
if ([prefix isEqualToString:@"awardLogin"])
{
isReash = YES;
[self jumpLogin];
}
if ([prefix isEqualToString:@"awardBindMobile"])
{
//绑定手机
ModifyPhoneController * phone = [[ModifyPhoneController alloc]init];
phone.title=@"绑定手机";
[self.navigationController pushViewController:phone animated:YES];
}
if([prefix rangeOfString:@"awardShare"].location !=NSNotFound)
{
NSRange range1 = [urlStr rangeOfString:@"?"];//匹配得到的下标
// NSLog(@"rang:%@",NSStringFromRange(range));
NSString *rangeStr =[urlStr substringFromIndex:range1.location+1];
NSArray * parameter = [rangeStr componentsSeparatedByString:@"&"];
NSLog(@"%@",parameter);
[dic setObject:[parameter[1] componentsSeparatedByString:@"="][1] forKey:@"shareTitle"];
[dic setObject:[parameter[2] componentsSeparatedByString:@"="][1] forKey:@"shareContent"];
[dic setObject:[parameter[0] componentsSeparatedByString:@"="][1] forKey:@"shareImg"];
[dic setObject:[parameter[3] componentsSeparatedByString:@"="][1] forKey:@"shareUrl"];
NSRange range = [parameter[4] rangeOfString:@"="];//匹配得到的下标
NSLog(@"rang:%@",NSStringFromRange(range));
NSString *rangeStr1 =[parameter[4] substringFromIndex:range.location+1];
[dic setObject:rangeStr1 forKey:@"smsContent"];
[self share:nil];
}
}
}
//回调JS代码
NSString * str =[NSString stringWithFormat:@"lsf_login_callback(%@)",[User shareUser].userId];
//评论完后刷新html5 页面
[self.webView stringByEvaluatingJavaScriptFromString:str];
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《从零开始学Swift》学习笔记(Day 18)——有几个分支语句?
分支语句又称条件语句,Swift编程语言提供了if、switch和guard三种分支语句。 if语句 由if语句引导的选择结构有if结构、if-else结构和else-if结构3种。 if结构示例代码如下: 1 2 3 4 5 varscore= 95 if score>= 85 { print( "您真优秀!" ) } 程序运行结果如下: 您真优秀! if-else结构示例代码如下: 1 2 3 4 5 6 7 varscore= 95 if score< 60 { print( "不及格" ) } else { print( "及格" ) } 程序运行结果如下: 及格 else-if结构示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 lettestscore= 76 vargrade:Character if testscore>= 90 { grade= "A" } else if testscore>= 80 { grade= "B" } else if testscore>= 70 {...
- 下一篇
使用Roboguice依赖注入规划Android项目
关于依赖注入 Dependency Injection( 依赖注入)能够非常好的帮助我们分离模块。减少耦合、提高可測试性。(PS:Roboguice 仅仅是一个工具。依赖注入很多其它的是一种思想) 通常博主开发项目时喜欢以Activity 、Service 等组件作为顶级层入口,辅以各类接口作为业务服务。Activity 主要负责维护界面相关的东西,及提供功能所须要的上下文环境,引入功能实现须要的接口。 这些接口的实例通过Roboguice进行注入。(当然你也能够全然不使用Roboguice,但还是建议保留接口注入的设计)。 关于Roboguice Roboguice 是基于guice-noaop 的android注入框架, 项目地址:https://github.com/roboguice/roboguice.利用Roboguice能够较轻松的注入各种服务。它默认提供了各种android相关的注入如: injectView ,injectResource 等。 遗憾的是这里将不正确Roboguice的使用具体解说。想了解 Roboguice 的读者能够查看官网的Wiki或參考:...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7设置SWAP分区,小内存服务器的救世主
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库