第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

UIWebView在Safari中打開鏈接

UIWebView在Safari中打開鏈接

拉丁的傳說 2019-08-23 16:41:25
UIWebView在Safari中打開鏈接我有一個非常簡單的UIWebView,其中包含我的應(yīng)用程序包中的內(nèi)容。我希望Web視圖中的任何鏈接都在Safari中打開,而不是在Web視圖中打開。這可能嗎?
查看完整描述

3 回答

?
慕標(biāo)5832272

TA貢獻1966條經(jīng)驗 獲得超4個贊

將其添加到UIWebView委托:

(編輯以檢查導(dǎo)航類型。您還可以傳遞file://相關(guān)鏈接的請求)

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if (navigationType == UIWebViewNavigationTypeLinkClicked ) {
        [[UIApplication sharedApplication] openURL:[request URL]];
        return NO;
    }

    return YES;}

Swift版本:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        if navigationType == UIWebViewNavigationType.LinkClicked {
            UIApplication.sharedApplication().openURL(request.URL!)
            return false
        }
        return true
    }

Swift 3版本:

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == UIWebViewNavigationType.linkClicked {
        UIApplication.shared.openURL(request.url!)
        return false
    }
    return true}

Swift 4版本:

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
    guard let url = request.url, navigationType == .linkClicked else { return true }
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
    return false}

更新

正如openURLiOS 10中已棄用的那樣:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
        if (navigationType == UIWebViewNavigationTypeLinkClicked ) {
            UIApplication *application = [UIApplication sharedApplication];
            [application openURL:[request URL] options:@{} completionHandler:nil];
            return NO;
        }

        return YES;}


查看完整回答
反對 回復(fù) 2019-08-23
?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

在Swift中,您可以使用以下代碼:

extension YourViewController: UIWebViewDelegate {
    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
        if let url = request.url, navigationType == UIWebView.NavigationType.linkClicked {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
            return false
        }
        return true
    }}

確保檢查URL值和navigationType。


查看完整回答
反對 回復(fù) 2019-08-23
?
長風(fēng)秋雁

TA貢獻1757條經(jīng)驗 獲得超7個贊

接受的答案不起作用。

如果您的網(wǎng)頁通過Javascript加載網(wǎng)址,navigationType則會是UIWebViewNavigationTypeOther。遺憾的是,其中還包括后臺頁面加載,例如分析。

要檢測頁面導(dǎo)航,您需要將其[request URL][request mainDocumentURL]

此解決方案適用于所有情況:

- (BOOL)webView:(UIWebView *)view shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)type{
    if ([[request URL] isEqual:[request mainDocumentURL]])
    {
        [[UIApplication sharedApplication] openURL:[request URL]];
        return NO;
    }
    else
    {       
        return YES;
    }}


查看完整回答
反對 回復(fù) 2019-08-23
  • 3 回答
  • 0 關(guān)注
  • 745 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號