ios html5交互教程,iOS 与 h5 交互快速方法

在所需的交互视图.m文件中写如下类似的协议,在.m的@interface遵守这个协议名并且实现如下方法,

@protocol ZKKInteractionWithDelegate

-(void)toTheMinimum;

-(void)toTheMaximum;

-(void)closeWebView;

-(void)toAlert:(NSString*)msg;

@end

在.m文件implement中分别实现方法,文章中的几个方法分别是隐藏、展示、关闭WebView 和在WebView上进行弹框操作。具体什么时候该调用iOS的不用理会,这里只是为了h5可以控制我们的webView和弹框,所以逻辑是由h5实现。

- (void)toTheMaximum{

// self.webView.frame = CGRectMake(0, -22, pingmuwidth, pingmuheight+22);

self.webView.hidden = NO;

NSLog(@"toTheMaximum");

dispatch_async(dispatch_get_main_queue(), ^{

[self.chatView.textField resignFirstResponder];

});

}

- (void)toTheMinimum{

// self.webView.frame = CGRectMake(0, 0, 1, 1);

self.webView.hidden = YES;

NSLog(@"toTheMaximum");

}

- (void)closeWebView{

[self.webView removeFromSuperview];

NSLog(@"closeWebView");

}

-(void)toAlert:(NSString*)msg{

NSLog(@"toAlert:(NSString*)msg : %@",msg);

UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"温馨提醒" message:msg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];

[self.webView addSubview:alert];

[alert show];

}

//实现UIWebViewDelegate,在.m文件中写如下方法识别js方法名,这个需要js和iOS的人达成一致类名,方法名,如

类名:InteractionWithJS

方法名:

ToTheMaximum

ToTheMinimum

closeWebView

toAlert(msg)

js调用webView的方法

-(void)webViewDidFinishLoad:(UIWebView *)webView{

self.context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

self.context[@"InteractionWithJS"] = self;

//JS调用无参数OC

// [self.view endEditing:YES];

// [self.chatView.textField resignFirstResponder];

[self.context setExceptionHandler:^(JSContext *ctx, JSValue *value) {

NSLog(@"--error:-- %@", value);

}];

// self.context[@"InteractionWithJS"] = self.webView;

}

即可完成

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值