Android WebView ne charge pas l'URL?
J'ai une WebView Android qui devrait charger l'Url ci-après:
https://buchung.salonmeister.de/ort/301655/menue/#offerId=907601&venueId=301655
https://buchung.salonmeister.de/place/#offer-details-page?id=907599&venueId=301655
Voici ce que j'ai fait:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_orange_light"
tools:context=".MainActivityFragment">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_margin="5dp"
android:layout_above="@+id/progressBar"></WebView>
<ProgressBar
android:id="@id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:visibility="invisible"
style="?android:attr/progressBarStyleHorizontal"/>
<TextView
android:id="@+id/titleView"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
Dans onCreateView()
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_main, container, false);
String url = //some url
final ProgressBar progressBar = (ProgressBar)v.findViewById(R.id.progressBar);
progressBar.setMax(100);
final TextView titleView = (TextView)v.findViewById(R.id.titleView);
mWebView = (WebView)v.findViewById(R.id.webView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowContentAccess(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress) {
if (progress == 100) {
progressBar.setVisibility(View.INVISIBLE);
progressBar.setProgress(0);
} else {
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(progress);
}
}
@Override
public void onReceivedTitle(WebView view, String title) {
titleView.setText(title);
}
});
mWebView.loadUrl(url);
return v;
}
L'écran est vide lorsque je démarre mon activité.
Remarque: Ce n'est pas un problème de mise en page. Merci de ne pas faire de commentaires sur la mise en page et de se concentrer sur le véritable problème.
Comment puis-je charger l'url ci-dessus dans une WebView?
Edit: Voici les autorisations que j'ai donné:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Edit:
Dans ma console j'obtiens le suivant:
I/chromium: [INFO:CONSOLE(84)] "undefined", source: https://buchung.salonmeister.de/place/(84)
09-13 15:12:33.230 28407-28407/de.test.webviewtest I/chromium: [INFO:CONSOLE(1)] "Uncaught Error: Script error for: widget/venue-menu/mobile/venue-menu-app
09-13 15:12:33.230 28407-28407/de.test.webviewtest I/chromium: http://requirejs.org/docs/errors.html#scripterror", source: https://buchung.salonmeister.de/javascript-module/1.162.3/thirdparty/require.2.1.10.js (1)
source d'informationauteur confile
Vous devez vous connecter pour publier un commentaire.
Le premier problème est que vous devez permuter la position de la ProgressBar et WebView.
Le deuxième problème vient de cette ligne:
À l'intérieur d'un RelativeLayout, vous devez avoir le point de vue de l'id de déclaration préalable, de sorte qu'un autre point de vue peut être relooké ci-dessus(à droite, à gauche, est de la même façon).
Et encore, c'est la même ligne:
À l'intérieur d'un RelativeView, d'un point de vue ne peut pas la mise en page ci-dessus(ou au-dessous, de gauche à droite) à un code qui est généré pour rien.
Vous ne
l'IDE va en générer un nouveau code, ce code n'est pas le même ID de vous dire la WebView à la disposition ci-dessus. Et dans votre Barre de déclaration, vous @+id/progressBar à nouveau, il sera re-générer un id.
Donc, votre WebView est relooké ci-dessus pour rien, vous ne pouvez même pas voir la WebView, il peut charges de l'Url, et vous ne pouvez pas le voir.
Bonne chance.
Mise à JOUR: avec
setJavaScriptEnabled(false);
l'Url"https://buchung.salonmeister.de/ort/301655/menue/#offerId=907601&venueId=301655"
peut affichés correctement dans la WebView.J'ai utilisé la totalité de votre code, voici mon site web afficher les résultats. Je pense que peut-être que le site n'est pas mobile-prêt parce que j'ai essayé d'ouvrir votre 2 les url dans le navigateur web de mon téléphone le même problème (toujours en cours de chargement...)
si vous le souhaitez, vous pouvez essayer d'utiliser la Barre de Progression Indéterminée Exemple et supprimer setWebChromeClient
essayez ce code :
}
Votre URL en https, donc Il est ssl problème.
Vous pouvez trouver une solution dans autre question.
Assurez-vous de mettre toutes les autorisations dans menifest fichier en dehors de la balise application.
Cela peut résoudre votre problème :