我在Android中使用Web View遇到了问题。我正在尝试使用Web View创建一个简单的应用程序,这个应用程序只需要在Web视图中加载一个网站。在移动设备(如手机)上,它可以很好地工作,但是当我尝试在WebView中从平板电脑(例如Nexus 10)打开应用程序时,它会加载网站的移动版本,而不是平板电脑版本。我搜索并没有找到这个问题的答案。我还检查了网站上的元标记,但它似乎就在那里,这不是问题。
这是我的.java文件:
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private static WebView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().setIcon(R.drawable.icon);
String url = "http://hoinarim.ro/";
view = (WebView) this.findViewById(R.id.webView);
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.getSettings().setJavaScriptEnabled(true);
//improve webview
view.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
view.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
view.getSettings().setAppCacheEnabled(true);
view.getSettings().setDomStorageEnabled(true);
view.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
view.getSettings().setUseWideViewPort(false);
view.getSettings().setLoadWithOverviewMode(true);
view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
view.getSettings().setSavePassword(true);
view.getSettings().setSaveFormData(true);
view.getSettings().setEnableSmoothTransition(true);
view.getSettings().setDatabaseEnabled(true);
view.getSettings().setUseWideViewPort(true);
view.setWebViewClient(new WebViewClient());
view.loadUrl(url);
view.setHorizontalScrollBarEnabled(false);
view.setOnTouchListener(new View.OnTouchListener() {
public float m_downX;
public boolean onTouch(View v, MotionEvent event) {
if (event.getPointerCount() > 1) {
//Multi touch detected
return true;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
{
// save the x
m_downX = event.getX();
}
break;
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP: {
// set x so that it doesn't move
event.setLocation(m_downX, event.getY());
}
break;
}
return false;
}
});
}
@Override
public void onBackPressed() {
if (view.canGoBack()) {
view.goBack();
}
else
{
super.onBackPressed();
}
}
}
这是我的.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context="hoinarimapp.hoinarim.MainActivity">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"/>
</RelativeLayout>
知道如何使这项工作?真的很令人沮丧。
答案 0 :(得分:0)
我不知道这是否会有所帮助,但这会加载网站的桌面版本。
String userAgent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0";
webview.getSettings().setUserAgentString(userAgent);
无论如何,我希望这会有所帮助:D