Skip to content

一个iOS上用于WKWebView和JavaScript通信的Bridge。

License

Notifications You must be signed in to change notification settings

KSkyeEx/JKJSBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JKJSBridge

一个iOS上用于WKWebView和JavaScript通信的Bridge。

安装

使用CocoaPods安装

将其添加到您的Podfile文件中并运行pod install以安装。

pod 'JKJSBridge'

Exaple

下载并运行JKMicroWebView 项目,以查看示例。

用法

  1. 导入头文件,并声明一个属性:

    #import <JKJSBridge/JKMicroJSBridge.h>
    @property (nonatomic, strong) JKMicroJSBridge *bridge;
  2. 使用WKWebView实例化JKMicroJSBridge:

    self.bridge = [JKMicroJSBridge bridgeForWebView:self.webView];
  3. 注册一个JS调用ObjC的函数:

    [self.bridge registerHandler:@"jsToOcFunction2" handler:^(NSDictionary *params, JKJSCallback callback) {
    	NSLog(@"%@", params);
    	callback(@{@"data": @"OC callback JS"});
    }];
  4. ObjC调用JS函数:

    [self.bridge callHandler:@"changeColor" data:@"oc 传给 js 的数据" responseCallback:^(NSDictionary *response) {
    	NSLog(@"%@", response);
    }];
  5. 在JS中使用如下函数调用ObjC:

    window.JKMicroJSBridge.callHandler('jsToOcFunction2',{'data':'我是参数'},function(response) {
    	alert(response)
    })
  6. 在JS中注册如下方法供ObjC调用,调用后可回调数据ObjC:

    window.JKMicroJSBridge.registerHandler('changeColor', function(data, responseCallback) {
    //dosomething
    	var responseData = { 'Javascript Says':'Right back atcha!' }
      //回调给ObjC的数据
    	responseCallback(responseData)
    })

API介绍

/**
 注册原生函数,供js调用

 @param handlerName 函数名
 @param handler 原生处理方法
 */
- (void)registerHandler:(NSString *)handlerName handler:(JKJSHandle)handler;
/**
 移除注册的原生函数,移除之后js将不能在调用到这个OC方法了,需要重新注册之后才能调用

 @param handlerName 函数名
 */
- (void)removeHandler:(NSString *)handlerName;
/**
 oc调用js

 @param handlerName js函数名
 */
- (void)callHandler:(NSString *)handlerName;
/**
 co调用js

 @param handlerName js函数名
 @param data 传递给js的数据
 */
- (void)callHandler:(NSString *)handlerName data:(id)data;
/**
 oc调用js

 @param handlerName 函数名
 @param data 传递给js的数据
 @param responseCallback JS回调给原生
 */
- (void)callHandler:(NSString *)handlerName data:(id)data responseCallback:(JKJSCallback)responseCallback;

最后感谢WebViewJavascriptBridge

About

一个iOS上用于WKWebView和JavaScript通信的Bridge。

Resources

License

Stars

Watchers

Forks

Packages

No packages published