2017-02-07 26 views
0

Я сделал приложение iOS с Xcode a Swift. Все гиперссылки открываются в приложениях собственного WebView. Но я хочу, чтобы иметь возможность открывать определенные гиперссылки внешние, значит, в браузере Safari.Xcode WebView; Открытая гиперссылка внешняя, если конкретный параметр get в URL

Я хочу открыть все гиперссылки, содержащие target=external как получить параметр www.example.com/?target=external в браузере Safari.

Причина: Я не очень опытный Я не знаю, с чего начать.

Может кто-нибудь дать мне подсказку, образец или ссылку? Благодаря!

+0

Посмотрите на методы WebView делегата, [WKWebView] (https://developer.apple.com/reference/webkit/wknavigationdelegate) или [UIWebView] (https://developer.apple.com/ reference/uikit/uiwebviewdelegate) – rckoenes

ответ

1
You can use below code to check 
if (url.query == target=external) 
{// open in safari 
UIApplication.sharedApplication().openURL(url) 
}else{ 
//open in web view in app 
} 

// Note if you are exepecting more than 1 parameter in url you can use componentSeperatedbyString method 

var paramArry = url.query.componentsSeparatedByString("&") 
if (paramArry[0] == target=external) 
{// open in safari 
UIApplication.sharedApplication().openURL(url) 
}else{ 
//open in web view in app 
} 
+0

Привет, спасибо за ваш ответ. Не проще ли использовать следующее, если несколько параметров? Код: 'if url.query! .rangeOfString (" target = external ")! = Nil {}' – user7128548

+0

да, вы также можете использовать его, вам не нужны другие параметры. –

+0

Хорошо, какой код позже вы имеете в виду? Мой или ваш? – user7128548