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成功调起原生方法了

  • 相关阅读:
    关于方差所引发的遐想
    POJ 1390 Blocks
    POJ 1722 SUBTRACT
    BZOJ 1901 Dynamic Rankings
    关于Shine-hale
    ACM恢复训练(一)最短路
    CSP退役记
    校内模拟赛(三)(9.24)
    校内模拟赛(二)(9.12)
    校内模拟赛(一)(2019.9.10)
  • 原文地址:https://www.cnblogs.com/zk1947/p/13755222.html
Copyright © 2011-2022 走看看