coder23507
coder23507

Reputation: 11

how to hide html elements in wkwebview in IOS?

i want to hide certain html elements in wkwebview using swift 4, xcode 9. i know how to do it in android and have added the code below. i just need an equivalent code for ios in swift 4 for wkwebView.

myWebView.setWebViewClient(new WebViewClient()
        {  
            @Override  
            public void onPageFinished(WebView view, String url)  
            {  
                myWebView.loadUrl("javascript:(function() { " +  
                        "document.getElementById('divHeader') 
[0].style.display='none'; " +  
                        "})()");  
            }  
        });  

        myWebView.loadUrl(URL);

Upvotes: 1

Views: 4449

Answers (1)

Yogesh Tandel
Yogesh Tandel

Reputation: 1754

Use WKWebView

import WebKit

class FirstViewController: UIViewController, WKNavigationDelegate {

@IBOutlet weak var webVw: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()
    webVw.navigationDelegate = self
    loadmyPage(htmlstr: "https://www.mywebsite.com")
}

func loadmyPage(htmlstr:String){
    let url = URL (string: htmlstr)
    let request = URLRequest(url: url!)
    webVw.load(request)
}

//MARK:- WKNavigationDelegate
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
    print(error.localizedDescription)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    print("Start to load")
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    print("finish to load")
    let elementID = "right_sidebar"
    let removeElementIdScript = "var element = document.getElementById('\(elementID)'); element.parentElement.removeChild(element);"
    webView.evaluateJavaScript(removeElementIdScript) { (response, error) in
        debugPrint("Am here")
    }
}

Upvotes: 2

Related Questions