Jascript OC交互

Posted ZhangDreamK

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jascript OC交互相关的知识,希望对你有一定的参考价值。

这篇博文
主要讲述 在ios中 有一个非常重要的控件WebView
这个控件是用来直接加载网络数据 那我们加载这些网络数据 不可避免的需要对其上面的一些控件进行操作
一个网页是由这几部分构成的:
html – 负责页面元素的显示 按钮 输入框 链接
CSS(层叠样式表) – 负责页面元素的样式 长什么样子 阴影 下划线 高亮
javascript – 负责用户交互 以及数据请求 响应事件

每个部分用到各自的语言
我们取这些控件当然就需要和JavaScript 交互 下面几张截图分别表示了我们怎么拿到网页的内容 控件 并实现交互





关于通过id拿到控件 还有一个问题
有时候这个控件可能没有id 比如右边输入框没有id
这时候我们应该怎么取得这个输入框呢
我们可以通过最外面节点比如input取得一个节点数组
然后通过下标取得特定的控件

iOS调用JavaScript代码 :

view didload
self.webView.hidden=YES;


view didfinishload


    [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('share_mask js-share-mask')[0].style.display='none'"];
    可以用dispatch_after
    self.webView.hidden=NO;

达到隐藏某个控件的效果

UIScreenEdgePanGestureRecognizer *pan=[[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(back:)];
    pan.edges=UIRectEdgeLeft;
    [self.view addGestureRecognizer:pan];
    添加界面左边和右边手势
左边和右边手势   实现方法
返回和到下一个界面

-(void)back:(UIScreenEdgePanGestureRecognizer *)pan

    if ([self.webView canGoBack]) 
        [self.webView goBack];
    

    if ([self.webView canGoForward]) 
        [self.webView goForward];
    


记得遵循UIWebViewDelegate协议  设置delegate哦

用WKwebView 需要包含WebKit 这个消耗内存比UIWebView少很多 用WKWebView好点

以上是关于Jascript OC交互的主要内容,如果未能解决你的问题,请参考以下文章

OC与JS交互-WKWebView篇

博客全局修改需求

JS 与 OC 交互

unity 与oc交互

iOS - OC 与 JS 交互六种方式总结

OC和UIwebView的交互