Android Webview: désactiver la SCRO
Ne Android, les applications natives pour désactiver la SCRO politiques de sécurité pour http://(pas de local/fichier) demandes?
Dans mon application native, une webview montre un html à distance via http://et non pas du système de fichiers. Cela semble être de la SCRO-restreinte de la même manière que dans les navigateurs internet.
Worakround: natif-js pont pour les requêtes ajax à la croisée des domaines qui n'ont pas Access-Control-Allow-Origin: *
est mon petit'n'dirt solution. (jsonp ou côté serveur proxy n'est pas une option en raison de biscuit+ip du client sont contrôlés par le webservice.)
Peut que cette politique soit désactivé pour dans des applis webviews?
S'il vous plaît laissez-moi savoir, si il y a un simple drapeau pour js permettant de contourner cette restriction qui limite le "native" de l'application webview.
OriginalL'auteur ledy | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, ce n'est pas possible, et croyez-moi, j'ai essayé de nombreuses façons.
Le meilleur que vous pouvez faire est de remplacer chargement de ressources. Voir L'interception et le remplacer HTTP-demandes de WebView
Désolé pour la poser à nouveau. Cela ne peut pas être "fixé" par shouldInterceptRequest depuis api 11 par la manipulation de l'en-tête de la réponse à la SCRO-accepté toujours?
est possible, voir ma réponse ci-dessous.
Une idée de comment surmonter cette frm RÉAGIR INDIGÈNES, quand je suis à l'aide d'une requête POST? Merci de voir stackoverflow.com/questions/52178543/...
OriginalL'auteur Marco Martinelli
C'est maintenant possible de l'API Android niveau 21. Vous pouvez créer des OPTIONS de réponse comme:
et ensuite appeler à partir de votre WebViewClient mise en œuvre comme suit:
Cela ne fonctionne qu'à partir de l'API de niveau 21, étant donné que les OPTIONS de réponse exige l'inspection de l'demandé méthode HTTP à partir de la WebResourceRequest, qui n'est disponible que depuis l'API 21.
Vous avez raison qu'il n'a pas de traiter directement les données de la demande pour les GET/PUT/POST demande, mais de la SCRO implique deux à la demande: le premier est un HTTP OPTIONS de demande sans demande de données qui vérifie pour voir si le GET/PUT/POST peut aller de travers, et si oui, la WebView procédera à faire la demande réelle avec les données. Ce code remplace la réponse pour cette première demande d'OPTIONS de sorte que la deuxième demande.
comment faire pour que la demande de javascript? Dans mes tests, je n'ai jamais eu la demande d'OPTIONS, juste à la demande réelle qui a échoué, j'ai donc fini à l'aide d'un
HttpURLConnection
pour obtenir le fichier de données et le retourner dans l'WebResourceResponse
En Javascript que vous venez de faire des demandes comme normal par exemple. par XMLHttpRequest ou de récupérer ou de quoi que ce soit. Le Java est ici mis en œuvre dans le
WebViewClient
classe qui est affecté à laWebView
dans lequel votre Javascript est en cours d'exécution. Je ne suis pas sûr de ce que votre installation ou que vous rencontrez des CORS des questions, mais vous devriez le lire developer.mozilla.org/en-US/docs/Web/HTTP/CORS pour comprendre la SCRO protocole.Une idée de comment surmonter cette frm RÉAGIR INDIGÈNES, quand je suis à l'aide d'une requête POST? Merci de voir stackoverflow.com/questions/52178543/...
OriginalL'auteur davidgoli