Webview获取H5页面js方法参数


 #import<JavaScriptCore/JavaScriptCore.h>


#pragma mark UIWebViewDelegate

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [SVProgressHUD dismissWithDelay:0.1];
    JSContext *jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    
    jsContext[@"openLink"] =^(id obj,id obj1){
        
        NSInteger attacmentId = 0;
        NSString *attacmentType = nil;
        
        NSRange range = [obj rangeOfString:@"link_"];
        attacmentId = [[obj substringFromIndex:range.length] integerValue];
        
        NSRange rangeType =  [obj1 rangeOfString:@"." options:NSBackwardsSearch];
        attacmentType = [obj1 substringFromIndex:rangeType.location];
        
        InvestInnovationAttacmentViewController *vc = [[InvestInnovationAttacmentViewController alloc]init];
        
        NSString *strUrl = [[MSCoreManager sharedManager]getAttachmetURL:@(attacmentId)];
        vc.urlLink = strUrl;
        vc.type = attacmentType;
        [self.navigationController pushViewController:vc animated:YES];

    
    };
    
    jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {
        context.exception = exceptionValue;
        //比如把js中的方法名改掉,OC找不到相应方法,这里就会打印异常信息
        MSLog(@"异常信息:%@", exceptionValue);
    };
    
}//

 

posted on 2016-12-13 09:59  助金  阅读(2547)  评论(0编辑  收藏  举报