iOS-html调起APP并传参
2016-03-15 18:20
399 查看
前一段时间要做一个html页面调起APP应用的需求,特记下研究成果
1、在项目info.plist中添加URL Types以供html调用
2、在html中调用
3、在Appdelegate中- (BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{}方法里监听html的调起
1、在项目info.plist中添加URL Types以供html调用
2、在html中调用
<html> <head lang="en"> <meta charset="UTF-8"> <title>支付页面</title> </head> <script type="text/javascript"> var url = location.search; //获取url中"?"符后的字串 var typestr=""; //截取参数 url=xxxx?type=1 if (url.indexOf("?") != -1) { typestr = url.split("type=")[1]; } //支付宝 if(typestr==1){ //支付宝调起应用 window.load=AliPay(); } else if(typestr==2){ //微信调起应用 window.load=Weixin(); } //支付宝调起应用,向应用传参数,0表示不做任何操作,1表示为支付宝调起的app,2表示为微信调起的app function AliPay(){ if(confirm("是否打开支付宝?")){//点击了确定 document.location = "XXXXFromHtml://type:1"; } else{//点击了取消后返回应用 document.location = "XXXXFromHtml://type:0"; } } //微信调起应用 function Weixinclick(){ if(confirm("是否打开微信?")){//点击了确定 document.location = "XXXXFromHtml://type:2"; } else{//点击了取消 document.location = "XXXXFromHtml://type:0"; } } </script> <body> </body> </html>
3、在Appdelegate中- (BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{}方法里监听html的调起
#pragma mark - CallbackMethod //打开外部链接回调 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { //网页调起app外面链接url type NSString *string =url.absoluteString; if ([string hasPrefix:@"xxxxfromhtml://"]) { //截取html传递的参数类型 NSString *type=[[string pathComponents] lastObject]; NSString *typeStr = [[type componentsSeparatedByString:@":"]lastObject]; NSInteger apptype = [typeStr integerValue]; // DebugLog(@"%@",array); BaseNavigationController *nav=(BaseNavigationController*)self.window.rootViewController; //当前离开应用的控制器 if ([[nav.childViewControllers lastObject] isKindOfClass:[XXXXPayViewController class]]) { //从网页调起app,不会调用充值界面方法,需手动调用 XXXXPayViewController *scoreVC=[nav.childViewControllers lastObject]; //在内部调用支付的应用跳转 [scoreVC fromWebHtmlWithType:apptype]; } return YES; } }
相关文章推荐
- iOS多页面传值方式之单例传值singleton
- iOS开发中的火星坐标系及各种坐标系转换算法
- IOS的KVO不能监听的场景
- iOS本地推送
- iOS下KVO使用过程中的陷阱
- iOS倒计时
- iOS 高德地图(二)(进阶具体使用的细节)
- iOS 高德地图(-)(基础篇)
- iOS- CALayer绘图,如何绘制渐变效果图
- iOS属性传值
- ios实现条形码扫描功能
- iOS下KVO使用过程中的陷阱
- iOS 工程中 Other Linker Flags
- iOS:禁止手势滑动切换界面
- iOS runtime 运行时( 三 深谈)
- iOS访UC、腾讯视频播放
- iOS 多线程 GCD的简单使用——iOS 编码复习(七)(多线程5)
- IOS基础:声音调用
- iOS开发中集成Reveal
- # iOS_Search Path $(SRCROOT)和$(PROJECT_DIR)