iOS与HTML交互

Simulator Screen Shot 2017年2月10日 下午2.16.07.png

这是一个HTML页面,需要我们做数据交互。
具体实现思路就是使用iOS的一个库<JavaScriptCore/JavaScriptCore.h>做交互
创建一个ViewController,在.h文件中创建JSContext对象,

@property (nonatomic, strong) JSContext *jsContext;

写一个自定义协议,协议中要实现的方法是HTML页面中点击触发方法

@protocol JSObjectiveCDelegate <JSExport>
- (void)getMessage:(NSString *)user :(NSString *)psw;
//此方法就是HTML代码中的约定方法;

创建一个js模型,通过模型调用方法更简便

@interface JsObjCModel : NSObject <JSObjectiveCDelegate>

@property (nonatomic, weak) JSContext *jsContext;

在.m中调用webView的一个协议方法

- (void)webViewDidFinishLoad:(UIWebView *)webView{
  //    [webView stringByEvaluatingJavaScriptFromString:@"OCModel.callSystemCamera()"];
  self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
  // 通过模型调用方法,这种方式更好些。
  JsObjCModel *model  = [[JsObjCModel alloc] init];
  self.jsContext[@"jsObject"] = model;//这里的@"jsObject"是HTML代码中的js对象,注意保持一致
  model.jsContext = self.jsContext;
  model.webView = _web;
  self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {
      context.exception = exceptionValue;
      NSLog(@"异常信息:%@", exceptionValue);
  };
}

这是HTML代码中的约定方法

 <script>
            function logIn(){
                var logName = $("#u").val();
                var logPass = $("#p").val();
                var logObj = jsObject.getMessage(logName,logPass);
            }

</script>

在.m中加入js模型,调用方法

@implementation JsObjCModel
- (void)getMessage:(NSString *)signName :(NSString *)signPass
{
//在这里写代码,实现你的数据交互就可以了;
}

注意:这个方法虽然是在ViewController.m中写的,但是这是一个单独的类,它不具有ViewController的属性,所以有关于view的方法及属性都是用不了的,这时可以添加通知解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基于UIWebView ios与js交互 githubdemo:https://github.com/wangji...
    874b526fa570阅读 6,833评论 0 1
  • 一.加载后台传过来的HTML标签,文字都能正常显示但是图片显示不了。找问题找了很久没有发现那个地方写错,也问了别人...
    骑马纵天下阅读 1,679评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,400评论 30 472
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,583评论 4 61
  • 紫色的梦飞入 像紫荆花一样的 芳香四散 在每一座停留的城市走街串巷 与每一个陌生的人走亲访友 唯独太久没有和你 作...
    苏shi阅读 1,621评论 2 2

友情链接更多精彩内容