zoukankan      html  css  js  c++  java
  • 老项目不改html代码的情况下将UIWebView改造成WKWebView的经过

    最近接手了一个老项目,里面的html页面非常多原生和js交互用的也很多全都是用UIWebView显示的,苹果要求20年12月底前项目中不能再使用UIWebView所以急需马上整改,主要需要改的就是变更原生和h5js的交互方法,我们都知道UIWebView和WK与js交互的代码是不一样的,UIWebView只要原生和h5约定好方法名就可以被调起,但是WK需要在js中如下代码所示才能实现被js调起

    window.webkit.messageHandlers.test.postMessage(1);

    为了能够在不改动h5页面情况下,js能调起WK原生,我这边做了一下js注入,代码如下

    NSString *jsStr = @"test = function(a){return window.webkit.messageHandlers.test.postMessage(a);}";
    WKUserScript *jsScript = [[WKUserScript alloc] initWithSource:jsStr injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];

      WKWebViewConfiguration *wkWebViewConfiguration=[[WKWebViewConfiguration alloc] init];

      [wkWebViewConfiguration.userContentController addUserScript:jsScript];

    这样就可以让js成功调起原生方法了

  • 相关阅读:
    跨域与跨域访问
    bootstrap.min.css.map作用
    CSS
    http协议
    djngo未整理
    redis安装及配置
    git 基础
    yum安装报错
    Go语言与区块链开发(转载)
    electron实现MessageBox
  • 原文地址:https://www.cnblogs.com/zk1947/p/13755222.html
Copyright © 2011-2022 走看看