Autoriser les appels ajax dans une Webview Android + jquery mobile
Je suis l'élaboration d'un javascript/HTML, application avec jquerymobile qui fait une requête ajax vers un serveur distant. L'application fonctionne très bien sur Chrome (uniquement le lancement de google chrome avec web la sécurité est désactivée) mais quand je l'intégrer dans les actifs/du répertoire d'une application Android (un simple webview) la distance des appels ajax échouer. Donc j'imagine que ça peut être une croix de domaine en question. Je suis conscient que phonegap ne pas avoir ce problème, mais je voudrais ne pas utiliser phonegap, si possible. La question est donc: comment puis-je désactiver la croix domaine de la protection dans une webview Android application?
c'est le code d'Activité:
public class Moby extends Activity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_moby);
WebView mbrowser = (WebView) findViewById(R.id.webView1); //get the WebView from the layout XML
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN)
mbrowser.getSettings().setAllowUniversalAccessFromFileURLs(true);
//mbrowser.setWebChromeClient(new WebChromeClient());
mbrowser.setWebViewClient(new WebViewClient());
mbrowser.loadUrl("file:///android_asset/index.html"); //set the HTML
WebSettings settings = mbrowser.getSettings();
settings.setJavaScriptEnabled(true);
}
}
<uses-permission android:name="android.permission.INTERNET" />
Et j'ai déjà mis la jquerymobile croix domaine des paramètres dans mes pages html:
<script src="script/jquery-1.8.2.js"></script>
<script>
$(document).bind("mobileinit", function(){
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
});
</script>
<script src="script/jquery.mobile-1.2.0.js"></script>
OriginalL'auteur sproing | 2012-12-19
Vous devez vous connecter pour publier un commentaire.
Essayer cette
OriginalL'auteur Danyial Shahid Ali
Je n'ai pas assez de points pour ce post un commentaire, toutefois, veuillez jeter un oeil à ce qui suit:
ajax de travail sur certains appareils Android, pas dans d'autres
Plus précisément, les éléments suivants sont requis sur Chrome en fonction webViews:
webView.getSettings().setAllowUniversalAccessFromFileUrls(true);
Edit: désolé, je viens de voir que vous êtes déjà en train de le ce -- je l'ai testé sur ma fin et il semble avoir résolu mon problème (a été d'obtenir un access-control-allow-origin erreur lors du chargement des liens locaux via ajax).
OriginalL'auteur ahash
J'ai eu le même problème et je l'ai corrigé en remplaçant shouldInterceptRequest dans mon WebViewClient. Je interception de l'appel ajax et de le faire en java. Vous devez faire de même pour les méthodes POST
Quand je inticiate mon webview, je instancier mon WebViewClient
OriginalL'auteur grandv22
Dans votre AndroidManifest.xml avez vous cette ligne :
OriginalL'auteur Kénium