webkit+各种js交互方法

本文介绍了在iOS 8及以后版本中,如何使用WKWebView替代UIWebView,主要原因是WKWebView内存占用更小且支持直接捕获网页JS操作。详细讲解了WKWebView的配置和实现JavaScript与Objective-C的交互,包括加载网页、监听加载进度、处理网页事件如alert、input,并展示了JavaScript端的简单示例。此外,还涵盖了WKWebView如何拦截和响应服务器请求,以及获取网页元素属性的方法。
摘要由CSDN通过智能技术生成
一、版本
8系统前,用UIWebView
8系统后,用webkit,WKWebView
因为webkit有两大优点:
1、占用内存更小,
2、可以通过回调直接捕捉网页上的alert,输入等js操作

二、代码
第一部分:UIViewController
//
//  ViewController.m
//  WKWebView
//
//  Created by nnandzc on 16/11/6.
//  Copyright © 2016 nnandzc. All rights reserved.
//
#import "ViewController.h"
#import
<JavaScriptCore/JavaScriptCore.h>
#import
<WebKit/WebKit.h>


@interface ViewController ()
<
WKUIDelegate ,
WKNavigationDelegate ,
WKScriptMessageHandler
>

@property ( nonatomic , strong ) WKWebView *webView;
@property ( nonatomic , strong , readonly ) JSContext     *jsContext;

@end

@implementation ViewController

- (
void )viewDidLoad {
    [
super viewDidLoad ];
    [
self webView ];
}

- (
WKWebView *)webView
{
   
if (! _webView )
    {
       
// js 配置
       
WKUserContentController *userContentController = [[ WKUserContentController alloc ] init ];
        [userContentController
addScriptMessageHandler : self name : @"jsCallOC" ];
       
       
// WKWebView 的配置
       
WKWebViewConfiguration *configuration = [[ WKWebViewConfiguration alloc ] init ];
        configuration.
userContentController = userContentController;
       
       
_webView = [[ WKWebView alloc ] initWithFrame : self . view . bounds configuration :configuration];
       
_webView . navigationDelegate =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值