2012-08-16 130 views
2

我有一種情況,我花了這麼多時間在谷歌沒有成功。Phonegap 2.0,科爾多瓦外部鏈接

我想在我的應用程序(IOS),它是那樣的

"<a href="http://google.com" target="_blank">External Link</a>"在Safari不是web視圖中打開外部鏈接打開。在那裏我已經在「Cordova.plist」

OpenAllWhitelistURLsInWebView : true

建立,因爲我甲肝以及一些I幀我的應用程序,在這裏我想保留用戶的Web視圖,而不是離開應用程序內。

的我不知道爲什麼目標=「_空白」不工作,在這裏:

https://build.phonegap.com/blog/access-tags它說:

「在iOS ,如果一個域名被列入白名單,鏈接會接管整個webview,除非鏈接的目標是_blank,在這種情況下,它將在瀏覽器中打開,如果不是,它會在設備上記錄一個錯誤,而從用戶的角度來看什麼都不做。

我試圖使用JS方式作爲好了,

window.open('http://www.google.com', '_blank'); 

沒有成功:(

PS:我有我的外部主機的各個環節建立

我感謝所有幫助。

謝謝!

+0

如果你改變'OpenAllWhitelistURLsInWebView'爲假,因爲它聽起來好像是發生什麼事是你的目標......那麼只有目標參數適用於那些想要在Safari – 2012-08-16 18:27:39

+0

所有在Safari中打開,即使是iframe來加載我想保留在APP – AlexC 2012-08-16 18:37:04

+0

是否被Google白名單列入?您可以將Google從白名單中排除,這應該強制它在瀏覽器中而不是應用中打開,同時保留iFrames的內部和白名單。 – ellemayo 2012-10-09 18:53:08

回答

0

它與我使用以下設置:

Cordova.plist:

OpenAllWhitelistURLsInWebView: false 

external Hosts: google.com 

Link在代碼:

< a target='_blank' href='http://maps.google.com/maps?q=something'> 

希望它爲你工作,以及:)

4

在MainViewController.m中你需要的是這個charmer

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
NSURL *url = [request URL]; 

// Intercept the external http requests and forward to Safari.app 
// Otherwise forward to the PhoneGap WebView 
if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) { 
    [[UIApplication sharedApplication] openURL:url]; 
    return NO; 
} 
else { 
    return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ]; 
} 
} 
+0

感謝:D我在找幾個小時找到你的答案:) – hgwd92 2012-12-18 13:19:11

+0

非常感謝!你救了我的一天.. :) – 2013-01-30 20:14:46

相關問題