2016-12-19 1 views
0

웹뷰에서 링크에서 매개 변수를 확인하고이나는의 ViewController에서 웹보기를 만든

func loadAddress(){ 
    let requestURL = NSURL(string:"http://www.example.com/") 
    let request = NSURLRequest(url: requestURL as! URL) 
    webview.loadRequest(request as URLRequest) 
} 

같은 페이지를로드 그리고

이 전화의 viewDidLoad

I 이 URL 매개 변수가 포함 된 페이지에 somelinks가 있습니다.

http://www.example.com?id=1&title=ABC 
사용자가 URL로 리디렉션 대신 다음 응용 프로그램에서이 링크를 클릭 이제

, 나는 내가 목표 C에서 몇 가지 예제를 발견하지만 나는 아이폰 OS

있는 대화 상자를 URL의 매개 변수를 얻고 열려 스위프트의 솔루션을 찾고 3

PS : 나는 엑스 코드

편집 요구하는대로 내가 링크를 대체 할 수있는이 웹 사이트의 HTML에 액세스 할 수 있습니다 여기에 내가 동일한 파일에, 시도 무엇이고 내 웹보기 내가있다 이 함수를 작성했습니다

func webView(_ webView: UIWebView,shouldStartLoadWith request: URLRequest,navigationType: UIWebViewNavigationType) -> Bool { 

    let scheme = request.url! 
    NSLog(scheme.absoluteString) 

    return false 

} 

또한 클래스 내가 뭘 잘못

enter image description here

를 웹보기 위해 대리인임을 확인했다?

+0

처럼 보이는 구현하지만 당신이하지 내리 뜬 NSURL이 URL로한다 또는 NSURLRequest가 된 URLRequest에, (HTTP [바로 새로운 직접 구조체를 사용]주의하십시오 : //stackoverflow.com/questions/37812286/swift-3-urlsession-shared-ambiguous-reference-member-datataskwithcomplet/37812485 # 37812485). – Moritz

+0

xcode이 (가) 오류를 제공하니이 픽스가 단독으로 제안 되었음 –

+0

아마도 그렇지만 관련이 없습니다. Xcode는 단지 IDE 일뿐입니다. 사실, 가끔은 잘못된 것입니다 ...;) TL : DR : Xcode에서 알려 주든,하지 않아도 다운 캐스트하지 마세요. – Moritz

답변

0

URLRequest를 매개 변수로 사용하는 webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool 메서드를 처리해야합니다. 이 방법에서는 원하는 URL을 원하는대로 지정할 수 있습니다.

클래스를 webview의 델리게이트로 설정하는 것을 잊지 마십시오. 쿼리 문자열을 재생하려면

, 당신이 objective-c answer

+0

이 함수에서 내 코드는 다음과 같습니다. scheme = request.url! NSLog (scheme.path) true를 반환합니다. –

+0

클래스가 webview의 위임자이지만 링크를 클릭하면 로그에 아무 것도 인쇄되지 않습니다. –

+0

NSLog (scheme.absoluteSring)를 작성하면 어떻게됩니까? –

0

에서 영감을 얻을 수 있습니다 내가 솔루션 나 자신을 발견했다, 내가 쓴 코드는 정확했다, 난 그냥 확인도 내 수업 것을 확인했다 UIWebViewDelegate이

그래서 클래스 문제에 관련없는이

class Mainbillboard: UIViewController,UIWebViewDelegate { 


@IBOutlet weak var activity: UIActivityIndicatorView! 
@IBOutlet weak var webview: UIWebView! 


override func viewDidLoad() { 
    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
    loadAddress() 
} 

func loadAddress(){ 
    let requestURL = NSURL(string:"example.com") 
    let request = NSURLRequest(url: requestURL as! URL) 
    webview.loadRequest(request as URLRequest) 

} 

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 

    let scheme = request.url! 
    NSLog(scheme.absoluteString) 
    NSLog("here it worked!!") 

    return true 

} 


func webViewDidStartLoad(_:UIWebView){ 
    self.view.bringSubview(toFront: self.activity) 
    activity.startAnimating() 
    NSLog("Indicator is loading") 

} 

func webViewDidFinishLoad(_:UIWebView){ 
    activity.stopAnimating() 
    NSLog("Indicator stopped loading") 
} 

} 
+0

예,하지만 당신은 3 번했습니다. –

관련 문제