iOS 开发 objective-C界面与H5交互

在当前的移动开发过程中,原生与H5的混合开发越来越多,H5界面在APP中的比例越来越大,H5不在仅仅是展示内容信息,儿此时的交互,也越来越多。接下来介绍一点iOS与H5交互的心得。

iOS加载webView
iOS加载webView还是非常方便的,声明webView,接着load一下,就可以了。

@property (nonatomic,strong) UIWebView * webView;
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];

    [self.webView loadRequest:request];

接下来说一些交互的东西
1、首先是打开界面时传参数,这里只需要在URL后面拼接就可以。

[NSString stringWithFormat:@"http://yourIP?username=%@&password=%@",username,password];

2、H5界面向iOS端传递信息

这里是H5部分写的

window.location.href = "协议名:传值内容"; 
window.location.href = "ios:back";

这是iOS端做的操作

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
 NSString *requestString = [[request URL] absoluteString];
  requestString = [requestString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    if( navigationType == UIWebViewNavigationTypeOther ) {
        if ([requestString hasPrefix:@"ios:"]) {
           //开始处理你的逻辑,收到消息要怎么做
         [self.navigationController popViewControllerAnimated:YES];
            return NO;
        }
    }
    return YES;
}

在这之前,一定记得先遵循协议。
逻辑非常简单,H5端刷新界面,但是提前约定好刷新的URl,拿到这个URL,就拦截,不允许刷新,同事将URL后跟的拿到,这是,你想做什么做什么。

3、Objective-C调用javascript

我们用去调用一个js方法,这个js方法我们可以重复上面2的写法,相当于有了回调,我们点击某个原生按钮,激活这个方法,会导致h5界面里的方法向我们传值。

     [_webview stringByEvaluatingJavaScriptFromString:@"function h5里的方法"];

如图
iOS 开发 objective-C界面与H5交互_第1张图片

你可能感兴趣的:(iOS-开发)