Po aktualizacji Cordova 5.0 w moim systemie tworzę nowe aplikacje. Kiedy testowałem moją aplikację na urządzeniu, w dzienniku konsoli pojawia się błąd:
No Content-Security-Policy meta tag found.
Please add one when using the Cordova-plugin-whitelist plugin.: 23.
Dodaję meta w sekcji head
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src: 'self' 'unsafe-inline' 'unsafe-eval'>
Ale znowu mam ten sam błąd, w aplikacji używam wtyczki do przeglądarki w aplikacji i 7 innych linków do stron internetowych.
cordova
phonegap-plugins
whitelist
Manikandan C
źródło
źródło
cordova-plugin-whitelist
- github.com/apache/cordova-plugin-whitelist ? Następnie będziesz musiał dodać<allow-navigation href="http://*/*" />
doOdpowiedzi:
Po dodaniu białej listy cordova-plugin , musisz powiedzieć aplikacji, aby zezwoliła na dostęp do wszystkich linków do stron internetowych lub określonych łączy, jeśli chcesz zachować je specyficzne.
Możesz po prostu dodać to do pliku config.xml , który można znaleźć w katalogu głównym aplikacji:
Zalecane w dokumentacji:
lub:
Z dokumentacji wtyczki:
źródło
Musisz dodać metatag CSP w sekcji głównej aplikacji
index.html
Zgodnie z https://github.com/apache/cordova-plugin-whitelist#content-security-policy
źródło
W Twoim metatagu są błędy.
Twój:
Poprawione:
Zwróć uwagę na dwukropek po „script-src” i podwójny cudzysłów na końcu tagu meta.
źródło
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
http://localhost:35729
do dyrektywy script-scr i dyrektywyws://localhost:35729
connect-src.script-src 'self' 'unsafe-inline' 'unsafe-eval'
zscript-src 'self' http://localhost:35279 'unsafe-inline' 'unsafe-eval'
i chcesz dodać nową dyrektywę o oddzielającej średnikiem na końcu atrybutu content:; script-src ws://localhost:35279
; connect-src 'self' ws://localhost:35279
. Zauważ, że otrzymywałem błąd (nie mogłem uzyskać dostępu do file: // <ścieżka do index.html> z powodu naruszenia CSP) dopóki nie dodałem „self”.Jak dla mnie wystarczyło przeinstalować wtyczkę białej listy :
i wtedy
Wygląda na to, że aktualizacja z poprzednich wersji Cordova nie powiodła się.
źródło
Dla mnie problem polegał na tym, że korzystałem z przestarzałych wersji platform cordova na androida i ios . Tak więc aktualizacja do [email protected] i [email protected] rozwiązała problem.
Możesz uaktualnić do tych określonych wersji:
źródło
Jest inny problem dotyczący połączenia. Niektóre wersje Androida mogą się łączyć, ale niektóre nie. Jest więc inne rozwiązanie
w AndroidManifest.xml:
<application ... android:usesCleartextTraffic="true"> ... </application>
Po prostu dodaj „android: usesCleartextTraffic =" true "”
i wreszcie problem rozwiązany.
źródło