热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:IOS支付宝微信回调传值给H5网页

篇首语:本文由编程笔记#小编为大家整理,主要介绍了IOS支付宝微信回调传值给H5网页相关的知识,希望对你有一定的参考价值。这里用是的苹果原生和JS

篇首语:本文由编程笔记#小编为大家整理,主要介绍了IOS 支付宝微信回调传值给H5网页相关的知识,希望对你有一定的参考价值。



这里用是的苹果原生和JS的交互 、有不明白JavascriptCore框架的可以去网上搜索下这方面的资料很多
废话不多说直接上代码

@protocol JSContextDelegate <JSExport>//这里面写H5,也就是网页端定义的方法- (void)isLogin;//如判断用户有没有登录@end

@interface htmlShopingViewController ()<JSContextDelegate>@property (nonatomic, strong) UIWebView *mainWebView;@property (nonatomic, strong) JSContext *jsContext;//支付宝返回的状态码@property (nonatomic ,strong)NSString * alipayCode;//微信返回的状态码@property (nonatomic ,strong)NSString * wxCode;//点击系统左上角的返回app的状态码,这里随便给一个值,前提是你和H5端商量好的值@property (nonatomic, strong) NSString *backCode@end

- (void)viewDidLoad {
   [super viewDidLoad];    self.alipayCode = @"";//给初始值
   self.wxCode = @"";//给初始值
   self.backCode = @"";//给初始值}

接着在webview的代理方法中写

- (void)webViewDidFinishLoad:(UIWebView *)webView{self.jsCOntext= [webView valueForKeyPath:@"documentView.webView.mainFrame.JavascriptContext"];    self.jsContext[@"填H5端的方法名(如abc. 方法名,取abc)"] = self;//也就是填的  self.jsContext[@"abc"]
   self.jsContext.exceptiOnHandler= ^(JSContext *context, JSValue *exceptionValue) {
       context.exception = exceptionValue;        NSLog(@"异常信息:%@", exceptionValue);
   };      if (![self.alipayCode isEqualToString:@""]) {//表示有值
       NSString *alipayCodeJS=[NSString stringWithFormat:@"h5端的方法名(\'%@\')",self.alipayCode]; //准备执行的js代码
       [self.jsContext evaluateScript: alipayCodeJS];//通过oc方法调用js的alert
       self.alipayCode = @""; //给回空值
     }
}

微信的和系统返回键的值同理、这里就只写支付宝  怎么传值可以参考http://www.jianshu.com/p/2536a7d689a5

#pragma mark - 支付宝支付后接收的值(状态码)- (void)aliPayReslut:(NSNotification *)notfication {        self.alipayCode = notfication.userInfo[@"resultStatus"];//支付宝的传回来的值
       [self.mainWebView reload];//刷新WebView  }

支付宝在传值的时候需要注意一下

上面的是在手机上安装了支付宝客户端,没有安装客户端的情况就需要在支付宝在没有客户端的时候传回状态码的地方调用

 //此方法只在没有支付宝客户端的时候传支付的状态码
       [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {            self.alipayCode = resultDic[@"resultStatus"];
           [self.mainWebView reload];
       }];

最后在写一个在支付过程中直接点击左上角的返回App的处理
当点击左上角返回App的时候回调用AppDelegate.h用的这个方法

- (void)applicationWillEnterForeground:(UIApplication *)application {    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
   [[NSNotificationCenter defaultCenter]postNotificationName:@"resumeBack" object:nil userInfo:nil];
}

上面同和支付宝一样的传值给H5端,进行界面跳转处理。OK写到这里就搞定了支付宝、微信回调传值给H5网页,写的不好莫怪。

    关注微信公众号

      学习区块链

      如果你觉得我的文章对你有帮助,请支持我,你的支持是我最大的动力 

 



推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
author-avatar
真理往往是废话
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有