2017-01-04 8 views
0

Ich versuche, eine Website zu laden: Citibank.Android webview laden Website nicht richtig

Dies lädt gut in der Chrome-Browser (Mobile und Desktop). Allerdings lädt nicht mit Stilen und Javascript in meiner Webview App.

Hinweis: Ich versuche eine Desktop-Website zu laden. Dies ist mein Code:

package com.example.asd.webproj; 

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    private WebView mWebview ; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mWebview = new WebView(this); 
     mWebview.setWebChromeClient(new WebChromeClient()); 
     mWebview.setWebViewClient(new WebViewClient()); 
     mWebview.getSettings().setUserAgentString("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"); 
     mWebview.getSettings().setAllowFileAccessFromFileURLs(true); 
     mWebview.getSettings().setAllowUniversalAccessFromFileURLs(true); 
     mWebview.clearCache(true); 
     mWebview.clearHistory(); 
     mWebview.getSettings().setAllowContentAccess(true); 
     mWebview.getSettings().setDomStorageEnabled(true); 
     mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript 
     mWebview.getSettings().setBuiltInZoomControls(true); 
     mWebview.getSettings().setSupportZoom(true); 
     mWebview.getSettings().setLoadWithOverviewMode(true); 
     mWebview.getSettings().setUseWideViewPort(true); 

     mWebview.getSettings().setBuiltInZoomControls(true); 
     mWebview.getSettings().setDisplayZoomControls(false); 

     mWebview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
     mWebview.setScrollbarFadingEnabled(false); 

     final Activity activity = this; 

     mWebview .loadUrl("https://www.citibank.com.hk/HKGCB/JSO/signon/DisplayUsernameSignon.do?locale=en_HK"); 
     setContentView(mWebview); 
    } 
} 

Was ich zu erwarten so etwas wie dieses: Citibank site Aber was ich sehe, ist: Android App

+0

http://stackoverflow.com/a/14688100/6478047 könnte nützlich – Redman

+0

@Redman sein: Das funktioniert nicht, ich die gleiche Website erhalten, wie ich den Screenshot oben gepostet haben. – user000111181

+0

haben Sie die folgenden Antworten darauf überprüft – Redman

Antwort

2

diese Codezeile Versuchen,

mWebview = new WebView(this); 

     mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript 

     final Activity activity = this; 

     mWebview.setWebViewClient(new WebViewClient() { 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       Toast.makeText(activity, description, Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     mWebview.loadUrl("https://www.citibank.com.hk/HKGCB/JSO/signon/DisplayUsernameSignon.do?locale=en_HK"); 
     setContentView(mWebview); 

enter image description here

Hinweis: Das Festlegen des User Agent-Strings kann das Problem beheben oder nicht, es hängt alles davon ab, welche User Agent-Zeichenfolge der Site sucht. Hier sind einige User-Agent-Zeichenfolgen, die derzeit verwendet werden https://deviceatlas.com/blog/list-of-user-agent-strings

+0

Nun, ich mache das, nicht wahr? Außerdem lädt es die mobile Site und nicht die Desktop-Site. – user000111181

+0

@ user000111181 Möchten Sie die Desktop-Ansicht-Website mobil laden lassen und den Benutzer zoomen lassen? –

+0

Ja Ich möchte die Desktop-Website laden. – user000111181

0

Hier setzen Sie UA für die Version von Mac OS. So fügen Sie Android Phone basierte UA-Zeichenfolge hinzu. entfernen Sie diese Zeile

mWebview.getSettings().setUserAgentString("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"); 

und stell 'das UA String

Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0 

Reference 1

Reference 2

+0

Dies würde es zwingen, mit dem Standard-UA zu laden, So lädt die mobile Website. – user000111181

0

Das Problem ist, mit Ihnen der User-Agent ist webkit erklären. Es sollte in den Standard Webkit Browser geladen werden und Sie sollten das Javascript aktivieren.

mWebview.getSettings().setUserAgentString("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"); 

Probieren Sie diese Codezeile aus.

package com.example.asd.webproj; 

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    private WebView mWebview ; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mWebview = new WebView(this); 
     mWebview.setWebChromeClient(new WebChromeClient()); 
     mWebview.setWebViewClient(new WebViewClient()); 
     mWebview.getSettings().setAllowFileAccessFromFileURLs(true); 
     mWebview.getSettings().setAllowUniversalAccessFromFileURLs(true); 
     mWebview.clearCache(true); 
     mWebview.clearHistory(); 
     mWebview.getSettings().setAllowContentAccess(true); 
     mWebview.getSettings().setDomStorageEnabled(true); 
     mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript 
     mWebview.getSettings().setBuiltInZoomControls(true); 
     mWebview.getSettings().setSupportZoom(true); 
     mWebview.getSettings().setLoadWithOverviewMode(true); 
     mWebview.getSettings().setUseWideViewPort(true); 

     mWebview.getSettings().setBuiltInZoomControls(true); 
     mWebview.getSettings().setDisplayZoomControls(false); 

     mWebview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
     mWebview.setScrollbarFadingEnabled(false); 

     final Activity activity = this; 

     mWebview .loadUrl("https://www.citibank.com.hk/HKGCB/JSO/signon/DisplayUsernameSignon.do?locale=en_HK"); 
     setContentView(mWebview); 
    } 
} 
+0

Hallo @codepirate: Dies lädt die mobile Website nicht die Desktop-Website. – user000111181

+0

Ja, für mich lädt die mobile Seite nicht – ASV