Skip to content

coooliang/CLWebViewBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

1.继承CLBasePlugin

#import "CLBasePlugin.h"

@interface InfoPlugin : CLBasePlugin
 
//必须有argument参数
-(void)hello:(NSString *)argument;
    
@end

2.拦截url

//WKWebView
// 在发送请求之前,决定是否跳转 1
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    NSString *url = navigationAction.request.URL.absoluteString;
    NSLog(@"url: %@",url);
    if([_interceptor isPluginUrl:url]){
        [_interceptor filter:url webView:webView viewController:self];
        decisionHandler(WKNavigationActionPolicyCancel);
        return;
    }
    //允许跳转
    decisionHandler(WKNavigationActionPolicyAllow);
    //不允许跳转
    //decisionHandler(WKNavigationActionPolicyCancel);
}

3.HTML中调用插件

//json string param
function hello(){
	var obj = {name:"lion",value:"666"};
	var param = JSON.stringify(obj);
	
	//var param = '{"name":"lion","value":"666"}';

    window.plugins.infoPlugin.hello(function(data){
    	alert(data);
    },null,param);
}

About

这是一个JS与Native通信的框架,可以实现页面对象与对应类一一对应的效果

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published