android中,用了webview载入了一个页面 http://0791.8ff.cn/test/test.html用android手机运行程序时,如果手机连单位上的无线网,是可正常访问的。
可如果手机断开单位上的无线网,用手机上的移动卡的网,就打不开webview中页面,此时,我在手机自带的浏览器中输入上面的url,是可正常访问的现问:为什么我用手机上的移动卡上的网不能正常载入webview中的页面呢,如何解决呀,thanks
可如果手机断开单位上的无线网,用手机上的移动卡的网,就打不开webview中页面,此时,我在手机自带的浏览器中输入上面的url,是可正常访问的现问:为什么我用手机上的移动卡上的网不能正常载入webview中的页面呢,如何解决呀,thanks
public synchronized static HttpURLConnection createHttpURLConnection(URL url) {
HttpURLConnection uc = null;
try{
if (netType == NetType.CMWAP) {// cmwap 上网模式, 使用代理
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,
new InetSocketAddress(PROXY_SERVER, 80));
uc = (HttpURLConnection) url.openConnection(proxy);
// 还有一个是Apache的HttpClient:
// DefaultHttpClient httpclient = new DefaultHttpClient();
// HttpHost proxy = new HttpHost(PROXY_SERVER, 80);
// httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
// proxy);
}else{
uc = (HttpURLConnection) url.openConnection();
}
}catch(Exception e){
e.printStackTrace();
}
return uc;
}
protected static String PROXY_SERVER = "10.0.0.172";移动联通的代理都是 10.0.0.172
HttpURLConnection 这个类不会用? 用他设置代理
回6楼的,我在浏览器中输入页面的url,访问正常,可在webview中运行不正常,
这种情况需要设置代理吗?
用手机上的移动卡的网,就打不开webview中页面,此时,我在手机自带的浏览器中输入上面的url,是可正常访问的
。。看你的情况。 必须设置代理
webview中代码如下
package com.webview;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;import android.view.KeyEvent;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler;
import android.os.Message;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.Toast;public class SearReActivity extends Activity {
WebView wv;
ProgressDialog pd;
Handler handlert2;
private TextView ftextView1;
private static Boolean isExit = false;
private static Boolean hasTask = false;
private String urlFG;
private String urlf;
private String fid;
private String tid;
private String srchtxt;
private ImageView imageView1;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.sear_re);
Intent inte=getIntent();
srchtxt=inte.getStringExtra("srchtxt");
handlert2=new Handler()
{
public void handleMessage(android.os.Message msg) {
switch(msg.what){
case 0:
pd.show();
break;
case 1:
pd.hide();
break;
}
};
};
init();
urlf="http://0791.8ff.cn/test/test.html";
loadUrl(wv, urlf);
}
public void init(){
wv=(WebView) findViewById(R.id.sear_re);
//可用js
wv.getSettings().setJavaScriptEnabled(true);
//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
wv.setScrollBarStyle(0);
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{ loadUrl(view, url);
return true;
}
});
wv.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
handlert2.sendEmptyMessage(1);
}
super.onProgressChanged(view, newProgress);
}
});
pd=new ProgressDialog(SearReActivity.this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("数据加载中,请稍候...");
}
public void loadUrl(final WebView webView,final String url){
new Thread(){
@Override
public void run() {
handlert2.sendEmptyMessage(0);
webView.loadUrl(url);
}
}.start();
}
//
}
你直接 webView.loadUrl(url); 用webView的 loadUrl 方法加载的??
webview全部代码我放在11楼,你帮我看下这问题,
import org.apache.http.conn.params.ConnRouteParams;import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.view.KeyEvent;
import android.widget.TextView;
import android.widget.Toast;import com.http.HTTPRequestHelper;
import com.opennet.NetworkControl;
import com.opennet.NetworkControl.NetType;/**
* 闪屏页面
* @author
*
*/
public class SplashActivity extends Activity {
//闪屏线程休眠时间
private static final int SPALSH_TIME = 10;
//闪屏总时间
private static final int SPLASH_INDEX_COUNT = 30;
//当前计数
private int splash_index;
//线程执行的条件
private boolean stop;
//UI线程
private SplashHandler myHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
PackageManager pm = getPackageManager();
try {
PackageInfo pi = pm.getPackageInfo("com.nc", 0);
TextView versionNumber = (TextView) findViewById(R.id.versionNumber);
versionNumber.setText("Version " + "1.0");
} catch (NameNotFoundException e) {
e.printStackTrace();
}
myHandler = new SplashHandler();
startHandler();
//on end }
@Override
protected void onResume() {
super.onResume();
startHandler();
}
//启动线程
private void startHandler(){
stop = true;
myHandler.sleep(SPALSH_TIME);
} private void openUserNetwork(){
//网络连接正常
if (NetworkControl.getNetworkState(this)){
NetType netType = NetworkControl.getNetType(this); if (netType != null) {
//GPRS要设置代理
if(netType.isWap()){
HttpHost proxy = new HttpHost( "10.0.0.172", 80, "http");
HTTPRequestHelper.client.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
}
}
Intent intent = new Intent();
intent.setClass(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
//没开网络
else{
Toast.makeText(this,R.string.toast_net_no, Toast.LENGTH_LONG).show();
new AlertDialog.Builder(SplashActivity.this).setTitle(R.string.net_set)
.setMessage(R.string.net_set_message)
.setPositiveButton(R.string.net_set_yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
intoNetSetting();
}
})
.setNegativeButton(R.string.net_set_no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.create().show();
}
}
private void openNetwork(){
stop = false;
splash_index = 0;
openUserNetwork();
}
//进入设置界面
private void intoNetSetting(){
Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
startActivity(intent);
} public class SplashHandler extends Handler {
@Override
public void handleMessage(Message msg) {
if(splash_index > SPLASH_INDEX_COUNT){
openNetwork();
}
else{
myHandler.sleep(SPALSH_TIME);
splash_index ++;
}
}
public void sleep(long delayMillis) {
if(stop){
removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
}
};
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){
}
return false;
};
}