Он просто говорит, что приложение должно запускаться на веб-сервере. У меня была такая же проблема с хром, я начал tomcat и перенесла туда свое приложение, и оно сработало.
Сначала используйте WKWebView
. Затем вы можете использовать метод WKNavigationDelegate decidePolicyForNavigationAction
, чтобы проверить URL-адрес загрузки, и если у него нет требуемых параметров запроса, отрегулируйте URL-адрес и перезагрузите его:
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView?
var loadUrl = URL(string: "https://stackoverflow.com/tags?isFromMobile=true")!
override func viewDidLoad() {
super.viewDidLoad()
// .. all your other code here
// Load first request with initial url
loadWebPage(url: loadUrl)
}
func loadWebPage(url: URL) {
var components = URLComponents(url: url, resolvingAgainstBaseURL: false)
components?.query = nil
// If already has a query then append a param
// otherwise create a new one
if let query = url.query {
// If isFromMobile param already exists jsut reassign the existing query
if query.contains("isFromMobile=true") {
components?.query = query
} else {
components?.query = query + "&isFromMobile=true"
}
} else {
components?.query = "isFromMobile=true"
}
let customRequest = URLRequest(url: components!.url!)
loadUrl = components!.url!
webView!.load(customRequest)
}
// MARK: - WKNavigationDelegate
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
guard let url = navigationAction.request.url else {
decisionHandler(.cancel)
return
}
// If url changes, cancel current request which has no custom parameters
// and load a new request with that url with custom parameters
if url != loadUrl {
decisionHandler(.cancel)
loadWebPage(url: url)
} else {
decisionHandler(.allow)
}
}
}
Прежде всего, при поиске в документации на ящик я обнаружил несколько вещей.
Прежде всего, вы используете UIWebview, который устарел. Вы должны использовать WKWebView. Из документов :
Важно. Начиная с iOS 8.0 и OS X 10.10, используйте WKWebView для добавления веб-контента в ваше приложение. Не используйте UIWebView или WebView.
При поиске документации для WKWebView существует способ, который вы можете использовать, называемый load (_:) .
Таким образом, вы бы переопределили этот метод, изменив URL-адрес, чтобы он содержал (isFromMobile = true), а затем вызвал супер-метод с обновленным URL-адресом.
Надеюсь, это может помочь.