2017-12-22 2 views
1

Teilweise als Übung für das Lernen ein wenig Android-Programmierung, und zum Teil, weil ich wünschte, ich hätte einen WhatsApp-Client auf Android Mobile, versuche ich eine App zu erstellen, die ich persönlich verwenden kann ein WhatsApp-Client für mein Handy. es tut, ist alles wie so die web.whatsapp.com Desktop-Website in einem UIWebView laden:Android - Webview Desktop-Website wird nicht funktionieren

webView = findViewById(R.id.wv); 
String ua = "user agent string"; 
webView.getSettings().setUserAgentString(ua); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.loadUrl(" url "); 

webView.setWebViewClient(new WebViewClient(){ 
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
     final Uri uri = request.getUrl(); 
     return true; 
    } 

    @Override 
    public void onPageFinished(WebView view, final String url) { 
     webView.clearHistory(); 
     super.onPageFinished(view, url); 

    } 
}); 

Diese Ordnung funktioniert. Es lädt tatsächlich die korrekte Webapp zum ersten Mal alleine, wenn die Aktivität die Webansicht lädt, anstatt zur ursprünglichen Seite umzuleiten, wie es normalerweise der Fall wäre, wenn der Server ein mobiles Gerät erkennt. Anstatt jedoch die tatsächliche Seite zu präsentieren, leite ich sie auf eine andere Seite um,

Nun, wenn ich WhatsApp Web von Chrome auf meinem Handy (und Anfrage Desktop-Version) verwenden, funktioniert es vollkommen in Ordnung, ich bin die Desktop-Site für meine UIWebView durch Setzen des UserAgents. Nun, ich wundere mich, warum es nicht in der WebView funktionieren würde, und ob vielleicht gibt es eine andere Header oder Wert, der gesetzt werden muss, um die App zu überzeugen, in meinem WebView zu arbeiten oder ich bin nicht vertraut mit android-Entwicklung, könnte jemand bitte helfen Sie mir ..

ich das Forum für eine Antwort auf diese Frage gesucht, aber ich konnte feststellen, nicht nur eine, hofft jemand die Lösung kennt:

Vielen Dank im Voraus.

+0

versuchen, loadUrl() nach dem Einstellen des WebViewClient setzen – Rainmaker

+0

@rainmaker Danke für Ihre Antwort. Ich habe es versucht, das gleiche Ergebnis – ASV

+0

In der Tat funktioniert die obige Lösung gut in Android-Emulator. – ASV

Antwort

0

Die Website verwendet wahrscheinlich Bootstrap und proportioniert nur den Bildschirm auf der Grundlage der Bildschirmgröße.

+0

Vielen Dank für Ihren Vorschlag, aber ich bin nicht vertraut mit Bootstrap, können Sie bitte Ihre Antwort erarbeiten. – ASV

+0

Wenn ich Cache lösche, würde es funktionieren, beim zweiten Mal funktioniert es nicht. – ASV

0

können Sie bitte ändern String ua = "Mozilla/5.0 (X11; U; Linux i686; de-DE; rv: 1.9.0.4) Gecko/20100101Firefox/4.0"; und probieren Sie es aus.

+0

Danke für Ihren Vorschlag, das funktioniert in Ordnung. Es lädt tatsächlich die korrekte Webanwendung, anstatt auf die WhatsApp-Homepage umzuleiten, die sich normalerweise öffnen würde, um die Browserseite auszuwählen – ASV

Verwandte Themen