美文网首页iOS填坑指南
iOS提审UIWebView的坑

iOS提审UIWebView的坑

作者: 闪现接Q | 来源:发表于2021-06-28 14:08 被阅读0次

    近期提审公司的一款应用,遇到UIWebView的坑,在这里总结一下:

    目前上传构建包的时候,如果扫描到代码中含有UIWebView源码引用或者静态库就会收到一下邮件:

    apple审核反馈

    证明你这个代码中有UIWebView相关问题,通常在xcode全局一搜UIWebView,替换为WKWebView即可。如果你引用三方framework或者pod库中包含UIWebView也会被检测到。

    这里推荐一个检测UIWebView的方法:

    在控制台,cd 到代码根目录,然后输入

     find . -type f | grep -e ".a" -e ".framework" | xargs grep -s UIWebView

    结果如下:

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (void)webViewDidFinishLoad:(UIWebView *)webView {

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (void)webViewDidStartLoad:(UIWebView *)webView {

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #import

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #define WVJB_WEBVIEW_TYPE UIWebView

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #define WVJB_WEBVIEW_DELEGATE_TYPE NSObject

    ./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #define WVJB_WEBVIEW_DELEGATE_INTERFACE NSObject

    ./Pods/WebViewJavascriptBridge/README.md:An iOS/OSX bridge for sending messages between Obj-C and JavaScript in WKWebViews, UIWebViews & WebViews.

    ./Pods/WebViewJavascriptBridge/README.md:2) Instantiate WebViewJavascriptBridge with a WKWebView, UIWebView (iOS) or WebView (OSX):

    ./Pods/WebViewJavascriptBridge/README.md:##### `[WebViewJavascriptBridge bridgeForWebView:(WKWebVIew/UIWebView/WebView*)webview`

    ./Pods/WebViewJavascriptBridge/README.md: NSLog(@"Current UIWebView page URL is: %@", responseData);

    会详细找到framwork或者.a 中的全部问题。

    我这里采用pod方式引用了 WebViewJavascriptBridge  

    采用pod方式,如果有UIWebView引用如何处理

    这里有个podfile的写法  

    pod 'WebViewJavascriptBridge', '~> 6.0.3'

    pre_install do |installer|

      dir_web = File.join(installer.sandbox.pod_dir('WebViewJavascriptBridge'), 'WebViewJavascriptBridge')

      Dir.foreach(dir_web) {|x|

        real_path = File.join(dir_web, x)

        if (!File.directory?(real_path) && File.exists?(real_path))

          if(x == 'WebViewJavascriptBridge.h' || x == 'WebViewJavascriptBridge.m')

            File.delete(real_path)

          end

        end

      }

    end

    仿照这种方法可以,修改pod中文件,可以指定删除,注意tag和代码层级。

    以上,提审UIWebView问题就差不多了~

    相关文章

      网友评论

        本文标题:iOS提审UIWebView的坑

        本文链接:https://www.haomeiwen.com/subject/rszhultx.html