1

enter image description here class WebViewController: UIViewController,WKUIDelegate { var _responseData: Data?

@IBOutlet weak var webViewMain: WKWebView!
var language: Int = 0
var movieName = String()
var urlStrng = String()
var urlMain: URL?
var data: Data?
var fileName = String()
var queue = OperationQueue()
 var pathOriginal = String()
var pathDuplocate = String()
var refreshAlert = UIAlertController()
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    //creating music folder this plays key role
    webViewMain.translatesAutoresizingMaskIntoConstraints = false
    let height = NSLayoutConstraint(item: webViewMain, attribute: .height, relatedBy: .equal, toItem: view, attribute: .height, multiplier: 1, constant: 0)
    let width = NSLayoutConstraint(item: webViewMain, attribute: .width, relatedBy: .equal, toItem: view, attribute: .width, multiplier: 1, constant: 0)
    view.addConstraints([height, width])
    let webConfiguration = WKWebViewConfiguration()
    webViewMain = WKWebView(frame: .zero, configuration: webConfiguration)
    webViewMain.uiDelegate = self
    webViewMain.navigationDelegate = self
    view = webViewMain
    switch language {
    case 1:
        urlStrng = "https://cse.google.co.in/cse?cx=005819264335345607731:ta3f5zeiqpm&q=king&oq=king&gs_l=partner.3...0.0.1.177130.0.0.0.0.0.0.0.0..0.0.gsnos%%2Cn%%3D13...0.0..1ac..25.partner..3.1.288.ArU-FOKoCOI#gsc.tab=0&gsc.q=\(movieName)&gsc.page=1"
        print("\(urlStrng)")
    case 2:
         urlStrng = "https://cse.google.com/cse?cx=017716760286974932527%%3Aa5xw-xxsaic&q=vikram%%20veda&oq=vikram%%20veda&gs_l=partner.3..0.3535.6702.0.8294.11.7.0.3.3.0.688.2733.1j1j0j2j1j2.7.0.gsnos%%2Cn%%3D13...0.3027j1482321j11..1ac.1.25.partner..4.7.1281.Ja2pFYDKTV4#gsc.tab=0&gsc.q=\(movieName)%%20&gsc.page=1"
        print("\(urlStrng)")
    case 3:
        //hindi
         urlStrng = "https://www.songsmp3.co/category/search?search=\(movieName)"
        print("\(urlStrng)")
    case 4:
        //malayala
         urlStrng = "https://cse.google.com/cse?cx=017716760286974932527%%3Aa5xw-xxsaic&q=vikram%%20veda&oq=vikram%%20veda&gs_l=partner.3..0.3535.6702.0.8294.11.7.0.3.3.0.688.2733.1j1j0j2j1j2.7.0.gsnos%%2Cn%%3D13...0.3027j1482321j11..1ac.1.25.partner..4.7.1281.Ja2pFYDKTV4#gsc.tab=0&gsc.q=\(movieName)%%20&gsc.page=1"
        print("\(urlStrng)")
    case 5:
        //malayala
         urlStrng = "https://cse.google.com/cse?cx=017716760286974932527%%3Aa5xw-xxsaic&q=vikram%%20veda&oq=vikram%%20veda&gs_l=partner.3..0.3535.6702.0.8294.11.7.0.3.3.0.688.2733.1j1j0j2j1j2.7.0.gsnos%%2Cn%%3D13...0.3027j1482321j11..1ac.1.25.partner..4.7.1281.Ja2pFYDKTV4#gsc.tab=0&gsc.q=\(movieName)%%20&gsc.page=1"
        print("\(urlStrng)")
    default:break

    }
    print("\(urlStrng)")
     //urlMain = URL(string:urlStrng)
    let url : NSString = urlStrng as NSString
    let urlStr : NSString = url.addingPercentEscapes(using: String.Encoding.utf8.rawValue)! as NSString
    let searchURL : NSURL = NSURL(string: urlStr as String)!
    print(searchURL)
    let request = URLRequest(url:searchURL as URL)
    webViewMain.load(request)

}


 extension WebViewController:WKNavigationDelegate
{
    func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {

    print(error.localizedDescription)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    print( webView.url)
    print("Strat to load")
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    print("finish to load")
}
public func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error)
{
    print(error.localizedDescription)
}
 public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void)
 { if (navigationAction.navigationType == .linkActivated){
    decisionHandler(.allow)
 } else {
    decisionHandler(.cancel)
    }
    print("decidepolicy")
}
public func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!)
{

        print("didreciveserver")

}

 public func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)
{

     print("didCommit")

}


    public func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Swift.Void)
   {
         print("didreciveChalange")
}
@available(iOS 9.0, *)
 public func webViewWebContentProcessDidTerminate(_ webView: WKWebView)
{
     print("didTerminate")

}

it not loading web view it showing 2 errors-:

1.) Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Completion handler passed to -[WingsMusic.WebViewController webView:didReceiveAuthenticationChallenge:completionHandler:] was not called' then i removed completion delegete and it load web page at first time an again shows below error

2.)Could not signal service com.apple.WebKit.Networking: 113: Could not find specified service

macwin fdo
  • 47
  • 8
  • talking apart from your error , why so much of stuff in viewDidLoad() ?? , why creating string object instead of variable? why using NSString and not Swift String? – Tushar Sharma Sep 29 '17 at 19:00
  • Possible duplicate of [com.apple.WebKit.WebContent drops 113 error: Could not find specified service](https://stackoverflow.com/questions/44585980/com-apple-webkit-webcontent-drops-113-error-could-not-find-specified-service) – Tushar Sharma Sep 29 '17 at 19:08
  • @TusharSharma for further needs & i am new to swift i don"t no the difference of string object instead of variable & if i use string in place of nstring it as crashing and swoing unable to wrap optonal nill.... like that – macwin fdo Sep 29 '17 at 19:15
  • apple have a very good document on swift, please read it you will understand something good, and then implement your code.By string variable i mean passing string as a type ex : var url:String? Instead var url = String() – Tushar Sharma Sep 29 '17 at 19:17
  • what was the difference if we give? t should optional right? – macwin fdo Sep 29 '17 at 19:27

1 Answers1

0

Under any case, you should return decisionHandler for decidePolicyFor navigationAction. Otherwise, you can see above crash

LiangWang
  • 8,038
  • 8
  • 41
  • 54