WKWebView的简单使用

最近在写一个套客APP,所以需要用到UIWebView,但是最后我放弃了UIWebView,那是因为我在使用的过程中遇到了一个问题,那就是当我利用UIWebView加载网页之后,在切换上面的tabbard的话,会出现闪屏的情况,就这个原因我查了好久,也是没有什么收获,最后我把UIWebView替换成WKWebView之后,这个问题就消失了,而且明显比UIWebView加载网页的速度快.那么我今天就来说说WKWebView的基本使用方法 1.就是加载网页

- (void)viewDidLoad {
    [super viewDidLoad];
    WKWebView *webView = [[WKWebView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    NSString *urlString = @"https://github.com";
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
    [self.view addSubview:webView];
    webView.navigationDelegate = self;
    self.webView = webView;
}

2.加载的状态回调(WKNavigationDelegate) 用来追踪加载过程(页面开始加载、加载完成、加载失败)的方法: //页面开始加载时使用

  • (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation; //当内容开始返回时调用
  • (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation; //当页面加载完之后调用
  • (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation; //当页面加载失败时调用
  • (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error; 页面跳转的代理方法
  • (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(null_unspecified WKNavigation *)navigation;
  • (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler;
  • (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;

转载于:https://my.oschina.net/u/2404655/blog/759648

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Mac原生代码给WKWebView传递参数可以通过JavaScript与原生代码进行交互来实现。以下是一个简单的步骤: 1. 首先,在你的Mac原生代码中,你需要将WKWebView加载一个HTML页面,并定义一个JavaScript脚本的函数来接收参数。你可以使用WKWebView的`loadHTMLString(_:baseURL:)`函数来加载HTML内容。 2. 创建一个WKWebView的配置对象,并设置它的`userContentController`属性以添加一个用于向JavaScript发送消息的脚本消息处理程序。你可以使用`add(_:name:)`方法来添加消息处理程序。例如: ```swift let webView = WKWebView(frame: .zero, configuration: config) let scriptHandler = MyScriptHandler() // 自定义的脚本消息处理程序 webView.configuration.userContentController.add(scriptHandler, name: "myScriptHandler") ``` 3. 在你的自定义脚本消息处理程序中,实现`userContentController(_:didReceive:)`方法来接收来自JavaScript的消息。在这个方法中,你可以对接收到的消息进行处理,并将处理结果返还给JavaScript,可以通过调用WKWebView的`evaluateJavaScript(_:completionHandler:)`方法来将结果发送给JavaScript。例如: ```swift func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { if message.name == "myScriptHandler" { // 处理接收到的消息 let receivedData = message.body as! [String: Any] let parameter = receivedData["parameter"] as! String // 向JavaScript发送处理结果 webView.evaluateJavaScript("handleResponse('\(parameter)');", completionHandler: nil) } } ``` 4. 在你的HTML页面中,调用JavaScript函数并传递参数给原生代码。你可以通过调用`window.webkit.messageHandlers.myScriptHandler.postMessage(_:)`方法来发送消息给原生代码,参数可以是一个JSON对象。 ```javascript function sendParameterToNative() { var parameter = { "parameter": "这是一个参数" }; window.webkit.messageHandlers.myScriptHandler.postMessage(parameter); } ``` 通过这样的步骤,你可以在Mac原生代码中使用WebKit框架的WKWebView来接收并处理来自JavaScript的参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值