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.
versuchen, loadUrl() nach dem Einstellen des WebViewClient setzen – Rainmaker
@rainmaker Danke für Ihre Antwort. Ich habe es versucht, das gleiche Ergebnis – ASV
In der Tat funktioniert die obige Lösung gut in Android-Emulator. – ASV