我正在尝试加载网站:https://hursleyonwmq.wordpress.com/2007/05/29/simplest-sample-applications-using-websphere-mq-jms/。
这在Chrome浏览器(移动和桌面)中加载正常。 但是,我的webview应用程序中不会加载样式和JavaScript。
注意:我正在尝试加载桌面网站。 这是我的代码:
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 );
}
}
我期望看到的是这样的: Citibank 但我看到的是:
答案 0 :(得分:2)
试试这行代码,
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);
注意:设置用户代理字符串可能会也可能不会解决问题,这一切都取决于网站正在查找的用户代理字符串。 以下是当前使用的一些用户代理字符串https://deviceatlas.com/blog/list-of-user-agent-strings
答案 1 :(得分:0)
这里您将UA用于Mac OS版本。所以添加基于Android手机的UA字符串。 删除此行
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");
并添加此UA字符串
Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
答案 2 :(得分:0)
问题在于您声明用户代理是webkit。它应该已加载到默认的webkit浏览器中,您应该启用javascript。
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");
试试这行代码。
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 );
}
}