两个实现方式: 一、用定时器;二、用广播判断是否联网: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16publicclassConnectNet{publicstaticbooleanisNetworkConnected(Contextcontext){// 判断是否联网ConnectivityManagercwjManager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE)NetworkInfoinfo=cwjManager.getActiveNetworkInfo()if(info!=null&&info.isAvailable()){// 如果联网,返回truereturntrue}else{// 不联网,返回falsereturnfalse}}}方案一:定时器handle和Runnable的运用,就可以进行更新页面 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18Handlerhandler=newHandler()// 构建Runnable对象,在runnable中更新页面Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){// 更新页面// 如果联网if(ConnectNet.isNetworkConnected(context)){myWebView.loadUrl(AURL)handler.removeCallbacks(this)}else{myWebView.loadUrl(BURL)handler.postDelayed(this,2000)// 每两秒执行一次runnable}}}handler.post(runnable)缺点: 用定时器这么更新,会有一个很大的问题,就是因为是每两秒就执行一次,所以会每两秒就刷新一次页面,也就会一直在刷新,因为是loadUrl,所以屏幕就会一直闪,一直再跳动,这个问题没法解决,所以我还是选择用了广播,也是很简单的一种方法,最早朋友提示我也是用这个就好,只是自己太烂了,知道广播怎么写,却不知道怎么把该写的内容加入进去,也是突然之间想到的:方案二:广播将主程序中的myWebView设为public static,以便后面之间调用,应该有其他更好的方法的,我就不去写了
然后主程序就只需判断首次登录时的是否联网,进入哪个页面就好:1 2 3 4 5 6if(ConnectNet.isNetworkConnected(context)){myWebView.loadUrl(BURL)}else{myWebView.loadUrl(AURL)}然后就是如何写广播啦: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26publicclassNetCheckReceiverextendsBroadcastReceiver{privatestaticfinalStringTAG="NetCheckReceiver"// android 中网络变化时所发的Intent的名字publicstaticfinalStringnetACTION="android.net.conn.CONNECTIVITY_CHANGE"@OverridepublicvoidonReceive(Contextcontext,Intentintent){// TODO Auto-generated method stubif(intent.getAction().equals(netACTION)){Log.e(TAG,"ACTION:"+intent.getAction())// Intent中ConnectivityManager.EXTRA_NO_CONNECTIVITY这个关键字表示着当前是否连接上了网络// true 代表网络断开 false 代表网络没有断开booleanisBreak=intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,false)Log.e(TAG,"is break:"+isBreak)if(isBreak){Log.d(TAG,"onTeceive:NOT connected, stopping Updaterservice")}else{Log.d(TAG,"onReceive: connected, starting UpdaaterService")context.myWebView.loadUrl(BURL)}}}}好了,这样就完成了,不过一定要记得广播的话要在AndroidManifest里面进行注册:1 2 3 4 5还有判断网络的:1
如何用js或者jquery获取客户端的IP地址:
$.getJSON("http://chaxun.1616.net/ip.htm",
function (data) {
alert(data.ip)
}).error(function () { alert("获取IP失败请联网查询")})
IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。目前还有些ip代理软件,但大部分都收费。
IP地址类型
公有地址:
公有地址(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
私有地址:
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
以下列出留用的内部私有地址:
A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255
说明当前浏览器并不支持JavaScript,换用其它浏览器即可,推荐使用Chrome浏览器。
谷歌浏览器(Chrome)是一个由Google(谷歌)公司开发的开放原始码网页浏览器。该浏览器是基于其他开放原始码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。