文章来源:淘论文网   发布者: 毕业设计   浏览量: 40



还可以点击去查询以下关键词:
[WKWebView]    [交互]    [JS-OC-WebView]    [优化]    [WKWebView实现js交互 JS-OC-WebView优化]   

项目介绍:

JS-OC-WebView

WKWebView实现js交互

采用WKWebView  
 

1、实现js交互,js调用native,native调用js  
 

2、实现WebView中的图片浏览功能。点击可以放大。    
       

3、实现图片长按进行保存功能。                      
             

4、实现了webview中的文字长按copy功能。
 

JS-OC-WebView 代码实现详解  
1、首先创建控制器WKMianWebViewController2、然后控制器中继承如下类:#import <WebKit/WebKit.h> #import <AVFoundation/AVFoundation.h> #import 'WKWebViewJavascriptBridge.h' #import 'SDWebView.h'3、准备工作:

1、设置代理

WKNavigationDelegate,WKUIDelegate

2、在.h文件中

@property (strong, nonatomic) SDWebView *webView; @property WKWebViewJavascriptBridge *webViewBridge;4、代码阶段:

1、viewDidLoad中初始化webView,实现[self initWKWebView]方法。方法如下:

- (void)initWKWebView { WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; configuration.userContentController = [WKUserContentController new]; WKPreferences *preferences = [WKPreferences new]; preferences.javaScriptCanOpenWindowsAutomatically = YES; preferences.minimumFontSize = 30.0; configuration.preferences = preferences; SDWebView *webView = [[SDWebView alloc] initWithFrame:self.view.frame configuration:configuration]; self.webView = webView; //如果是本地html,用下面方法: NSString *urlStr = [[NSBundle mainBundle] pathForResource:@'index.html' ofType:nil]; NSString *localHtml = [NSString stringWithContentsOfFile:urlStr encoding:NSUTF8StringEncoding error:nil]; NSURL *fileURL = [NSURL fileURLWithPath:urlStr]; [webView loadHTMLString:localHtml baseURL:fileURL]; //如果是网址,开题报告,用下面的方法: // [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@'?s=2']]]; webView.UIDelegate = self; [self.view addSubview:webView]; }

2、然后初始化webViewBridge并注册代理。

_webViewBridge = [WKWebViewJavascriptBridge bridgeForWebView:self.webView]; [_webViewBridge setWebViewDelegate:self.webView];

3、最后注册js交互的方法,如demo所示:

[self registerNativeFunctions];

registerNativeFunctions方法的实现

#pragma mark - private method - (void)registerNativeFunctions { [self registTestOneFunction]; } -(void)registTestOneFunction { [_webViewBridge registerHandler:@'testOCFunction' handler:^(id data, WVJBResponseCallback responseCallback) { // data 的类型与 JS中传的参数有关 NSDictionary *tempDic = [self JSONStringToDictionaryWithData:data];; // 在这里执行分享的操作 NSString *title = [tempDic objectForKey:@'title']; NSString *content = [tempDic objectForKey:@'content']; NSString *url = [tempDic objectForKey:@'url']; // 将分享的结果返回到JS中 NSString *result = [NSString stringWithFormat:@'js调用native成功成功:\ntitle=%@\n,content=%@\n,url=%@',title,content,url]; responseCallback(result); }]; }

代码移步GitHub,给个star鼓励,相互进步,开题报告,think you
点击进入GitHub
点击进入我的CSDN博客


这里还有:


还可以点击去查询:
[WKWebView]    [交互]    [JS-OC-WebView]    [优化]    [WKWebView实现js交互 JS-OC-WebView优化]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/3374.docx
  • 上一篇:仿微信朋友圈定制--CircleOfFriendsDisplay
  • 下一篇:小红点(消息推送提醒)完整解决方案