2015-10-16 76 views
1

我正在使用大量UIWebView s的iOS應用程序。是否有辦法阻止UIWebView彈出到Safari(iFrame代碼),但仍然加載頁面?防止UIWebView彈出到Safari,但仍然加載頁面

換句話說返回YESwebView:shouldStartLoadWithRequest:navigationType:但不讓網頁彈出到Safari。

編輯: Web視圖方有需要被執行,這就是爲什麼我需要返回YES過程。但是這些過程也無意中導致應用程序在Safari中啓動URL。我正在尋找一種攔截方法,並選擇是否在Safari中啓動網址。

+0

什麼是 「彈出Safari瀏覽器」 是什麼意思?如果你返回YES,頁面加載,不是嗎?這不就是你說的你想要的嗎? – matt

+0

Web視圖端有需要執行的進程,這就是爲什麼我需要返回YES。但是這個過程也無意中導致應用程序在Safari中啓動URL。我正在尋找一種攔截方法,並選擇是否在Safari中啓動網址。 – appsyoon

+0

「但是這個過程也無意中導致應用程序在Safari中啓動URL」我從來沒有見過這樣的事情發生。如果_you_調用'openURL',Safari會啓動。這些是你自己的網頁嗎?爲什麼會發生? – matt

回答

0

Apple在iOS 9上引入了Safari View Controller。Safari View Controller是一款預置的瀏覽器,具有Mobile Safari的所有功能,但無需離開您的應用即可展示。

首先,我們需要導入Safari瀏覽器服務

#import <SafariServices/SafariServices.h> 

客觀C: -

NSString *yourUrl = @"http://yourURL"; 
SFSafariViewController *svc= [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString: yourUrl]]; 
[self presentViewController:svc animated:YES completion:nil]; 

對於斯威夫特: -

let svc = SFSafariViewController(URL: NSURL(string: self.urlString)!) 
self.presentViewController(svc, animated: true, completion: nil)