//webViewH5点击交互走的代理  

-(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];

转载于:https://blog.51cto.com/9951038/1842724

iOS HTML5的JS交互相关推荐

  1. iOS WKWebView和JS交互的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍两种方式实现iOS WKWebView和JS交互 WKWebViewConfiguration注入WKScriptMe ...

  2. android和ios HybridApp的js交互

    android的webview和js交互 https://github.com/chenhaifeng2016/AndroidWebview ios的uiwebview和js交互 https://gi ...

  3. iOS OC与JS交互(WebView监听事件)

    在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...

  4. iOS web与JS交互

    webview 与 JS交互核心代码为: [webView stringByEvaluatingJavaScriptFromString:@"xxxxxxxxxx"]; 转载于:h ...

  5. xamarin ios html5 video.js 无法播放

    //只启用某些域绕过 ATS 设置在 ios 的 Info.plist 中<key>NSAppTransportSecurity</key><dict><ke ...

  6. ios传值给js_深入剖析 iOS 与 JS 交互

    前言 Web 页面中的 JS 与 iOS Native 如何交互是每个 iOS 猿必须掌握的技能.而说到 Native 与 JS 交互,就不得不提一嘴 Hybrid. Hybrid 的翻译结果并不是很 ...

  7. IOS开发 - UIWebView(用法全面介绍,含最全的JS交互)

    前两天我写了一套关于JS与OC交互的三种方法的文章,但是发现自己对UIWebView理解的还是比较浅,一直认为只能简单的当一个webView来使用,具体很多细节都忽略,如果想看我之前UIWebView ...

  8. iOS与JS交互的4种方法

    iOS与JS交互的方法: 1.拦截url(适用于UIWebView和WKWebView) 2.JavaScriptCore(只适用于UIWebView,iOS7+) 3.WKScriptMessage ...

  9. android ios web兼容,js与android iOS 交互兼容

    js与android iOS 交互兼容 在Android与js交互方面还是要比iOS方便很多,而UIWebView只暴漏出- (BOOL)webView:(UIWebView *)webView sh ...

  10. ios webview html交互 卡死,iOS 之webview 的js交互(alert、confirm、prompt)弹窗造成界面卡死...

    概述:当iOS客户端中webView 与js交互,在主线程执行js脚本时,而js脚本存在alert().confirm().prompt()这三种弹窗时会造成iOS界面卡死. 1.造成卡死时的代码如下 ...

最新文章

  1. 卡尔曼滤波器的特殊案例
  2. ELK不香了?企业级日志平台后起之秀 Graylog
  3. base64格式的图片上传阿里云
  4. Java并发编程(6):Runnable和Thread实现多线程的区别(含代码)
  5. WatchOS系统开发大全(4)-WatchApp生命周期
  6. 哈佛大学 CS50,全美最受欢迎的计算机课程!
  7. 使用Dundas控件在web应用上展现多维数据集(二)
  8. 通过指针获取输入的字符串
  9. 软件工程个人日报 2016/6/29
  10. 通过TCP/IP实现PC(客户端)远程控制开发板(服务器)上LED灯的实验
  11. 影视之观大秦帝国之裂变总结
  12. modelsim-SE仿真error问题
  13. MySQL基础教程【1】数据库简介
  14. 全卷积网络FCN与卷积神经网络CNN的区别
  15. Value cannot be null. (Parameter ‘connectionString‘)
  16. 通过js获取PHP设置的cookie(全实例讲解)
  17. java .net 加密解密,【汉字加密解密】一个16进制,可用于.net与java接口加密、解密...
  18. 如何关闭Microsoft Office正版增值计划?
  19. html用字符转换成表情,HTML表情符号
  20. 【C语言进阶17——程序环境和预处理】

热门文章

  1. Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
  2. Android中R文件的丢失问题以及aapt.exe停止工作如何解决
  3. python变量、运算符、要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入练习
  4. python-docx下载_python-docx
  5. junit 生成html报告,gradle – 如何为JUnit 5测试创建HTML报告?
  6. java cstring_Java CString類代碼示例
  7. python-gui-pyqt5的使用方法-2
  8. php检查是否支持openssl,swoole环境是否支持openssl
  9. note同步不及时 one_续航800仅卖23万,比亚迪唐DM为啥却卖不过理想ONE?
  10. JAVA主类包涵其他类,Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )...