Mam aplikację hybrydową iOS, skupioną wokół WKWebView
, ładując lokalne zasoby internetowe za pomocą loadFileURL
. Interfejs WKWebView
komunikuje się za pośrednictwem protokołu HTTPS z interfejsem API backendu z jQuery.ajax
. Ta aplikacja działa tylko na urządzeniach mobilnych i chcę, aby interfejs API był również "tylko mobilny". To znaczy, chcę zablokować przeglądarki, takie jak Chrome i Firefox, za pomocą interfejsu API.Zmień pochodzenie WKWebView w aplikacji iOS
Moja strategia jest ustawienie nagłówka Access-Control-Allow-Origin
na odpowiedziach API następująco:
Access-Control-Allow-Origin: app://myApp
mogę zmienić pochodzenie WKWebView
do app://myApp
aby uniknąć przeglądarek z zapytań API?
Cześć Chandra. Po stronie aplikacji chcę zmienić "pochodzenie". Nagłówek 'Access-Control-Allow-Origin' jest dodawany przez odpowiedzi serwera API! – Randomblue
Witam ..Jeśli szukasz czegoś takiego jak NSURLProtocol, aby przechwycić żądanie sieciowe z WKWebview, NSURLProtocol nie działa z WKWebview, ponieważ WKWebview ładuje wszystkie żądania sieciowe z innego procesu. Jednak nadal spróbuj rozwiązać powyższe rozwiązanie w case1, aby zmienić nagłówki na wymagane wartości dla wszystkich wywołań AJAX z WKWebview i zobaczyć, czy ta pomoc. – Chandra
Możesz również zmienić swoją strategię i dodać niestandardowy nagłówek (zamiast używać nagłówka Access-Control-Allow-Origin) dla wszystkich wywołań AJAX z WKWebView, a na swoim serwerze API możesz użyć tego niestandardowego nagłówka, aby zidentyfikować połączenia api pochodzą z Twojej aplikacji, a nie z innych przeglądarek. Daj mi znać, jeśli to pomoże. – Chandra