`
mushme
  • 浏览: 789450 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

天气预报插件

 
阅读更多
http://61.4.185.48:81/g/
这个地址,可以获取到城市id

http://m.weather.com.cn/data/101010100.html
101010100为城市id
然后就可以得到城市的天气预报

其实直接可以使用封装好的。
http://m.weather.com.cn/m/pn12/weather.htm
其中pn12为选择的样式。

以上是原理,现在是代码,一共三个文件
weather.html,weather.jsp,util
weather.html显示内容,weather.jsp做ajax抓取请求,解决跨域问题,然后一个工具类
1.weather.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
*   {margin: 0;padding: 0;list-style:none;font-weight:normal;line-height:180%;}img    {border:0;}
body{
	font-family: Verdana, Arial, Helvetica, sans-serif;
	background-color:transparent;
	color:#000;font-size:12px;text-align:center;
	margin: 0px auto; 
}
a     {color:#000;text-decoration:none;}a:hover    {color:#FF6600;text-decoration:underline;}em    {font-style:normal;}strong    {}a strong    {}select    {height:20px;line-height:20px;}ul.row    {clear:both;}ul.row li    {float:left;margin:0 4px;}ul.row li a    {display:inline;height:22px;line-height:22px;}.more a    {}ul.col li    {margin:4px auto;text-align:center;font-size:14px;font-weight:bold;}ul.col li #city    {font-weight:bold;margin-left:10px;}ul.col li a    {font-size:14px;font-weight:bold;}ul.col .small    {padding-top:6px;}ul.col .small a    {font-size:12px;}ul.col .line    {padding:10px;border-bottom:1px dashed #ddd;}dl    {clear:both;margin:0 auto;}dl dt    {float:left;height:65px;margin-right:10px;}dl dt strong    {display:block;margin-top:5px;*margin-top:10px;_margin-top:15px;}dl dt a    {}dl dd    {margin-left:5px;text-align:left;height:18px;line-height:18px;padding:0;margin:0;}dl .title     {margin-bottom:4px;_margin-bottom:-4px;}dl .title #city    {font-size:14px;font-weight:bold;}
#cj    {clear:both;margin: 0px auto;width:220px;}
#left    {float:left;text-align:center;}#left h3   {   margin-bottom:4px;}#left h3 #city    {font-size:14px;font-weight:bold;}#cj h4    {font-size:12px;margin-bottom:5px;}
#right    {margin-left:10px;text-align:left;}#cjbg    {background:url(/img/bg.gif) left bottom repeat-x;height:90px;padding:10px;}#cjbg .line    {border-left:1px solid #ddd;padding-left:8px;}#cjbg h4    {font-size:12px;}#right h3 #city    {font-size:14px;margin-right:10px;font-weight:bold;margin-bottom:4px;}ul.new    {   background-color:transparent;   height:28px;   line-height:28px;}ul.new li a img   {   margin-top:4px;}ul.new li a em    {font-weight:bold;color:#fff;line-height:28px;}ul.new li a:hover    {text-decoration:none;color:#000;}ul.new li a:hover em    {color:#000;}#eNew    {text-align:left;margin:0 auto;width:150px;height:180px;}#eNew h1    {font-size:20px;margin-bottom:0;}#eNew h2 a em    {    font-size:14px;    font-weight:normal;}#eNew h4    {background:url(/img/w.gif) left top no-repeat;height:43px;line-height:43px;text-indent:1em;width:150px;}#eNew h4 a em    {line-height:43px;font-size:18px;font-weight:blod;}#eNew p    {font-size:12px;}.blue{  text-align:right;}.blue li a{  color:#0070C0;}ul.blue li{  float:right;}
</style>
</head>
<body>
<div id="cj">
  <span id="left">
    <h3><a id="url1" href="" target="_blank"><em id="city"></em></a></h3>
    <p><a id="url2" href="" target="_blank"><img id="big1" src="" alt=""/></a>&nbsp;<a id="url3" href="" target="_blank"><img id="big2" src="" alt="" /></a></a></p>
    <h4><a id="url4" href="" target="_blank"><em id="weather1"></em></a></h4>
  </span>
  <span id="right">
    <h4>温度:<a id="url5" href="" target="_blank"><em id="temp1"></em></a></h4>
    <h4>风力:<a id="url6" href="" target="_blank"><em id="wd1"></em></a></h4>
    <h4>紫外线:<a id="url7" href="" target="_blank"><em id="index_uv"></em></a></h4>
    <h4 class="more"><a id="url8" href="" target="_blank">未来七天预报</a></h4>
  </span>
</div>
<script type="text/javascript" >
var xmlhttp=null; 
var jsonobj;
var rs="http://61.4.185.48:81/g/";
var cookie_info= getCookie('newcity1');
var id1;
var ids="url1,url2,url3,url4,url5,url6,url7";
var url=window.location.href;
var start=url.indexOf("id");
var end=url.indexOf("T");

//设置文字的点击连接
var setURL=function(ids, url)
{var nodes=ids;if(typeof nodes=="string"){nodes=nodes.split(",");}
for( var i=0; i<nodes.length; i++){if(document.getElementById(nodes[i])){document.getElementById(nodes[i]).href=url;}}}

//cookies函数
function setCookie(name, value) 
{ var argv = setCookie.arguments; 
var argc = setCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
if(expires!=null) 
{ var LargeExpDate = new Date (); LargeExpDate.setTime(LargeExpDate.getTime() + (expires*365*24*60*60*1000*10));}
document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));}
function getCookie(Name) 
{var search = Name + "=" ;
if(document.cookie.length > 0) 
{offset = document.cookie.indexOf(search) 
if(offset != -1) 
{offset += search.length;
end = document.cookie.indexOf(";", offset);
if(end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));}
else return "";}}

//ajax建立连接方法
function createXMLHTTPRequext()
{if (window.XMLHttpRequest)
{xmlhttp = new XMLHttpRequest(); }
else if (window.ActiveXObject)
{xmlhttp =new ActiveXObject("Msxml2.XMLHTTP") ;
if (! xmlhttp )
{xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); }}}

//ajax返回处理方法
function HandleStateChange() 
{if (xmlhttp.readyState == 4)
{var jsontext =xmlhttp.responseText;
var func = new Function("return " + jsontext);
jsonobj = func();}}

function PostOrder(xmldoc) 
{createXMLHTTPRequext();xmlhttp.open("GET", xmldoc,false);
xmlhttp.onreadystatechange= HandleStateChange;
xmlhttp.send(null); }


function returndata(id){
	var datastr1;
	if(id==""){
		str="101010100";
		//datastr1='/data/'+str+'.html';
		datastr1='weather.jsp?cityId='+str;
	}
	else{
		//datastr1='/data/'+id+'.html';
		datastr1='weather.jsp?cityId='+id;
		}
	PostOrder(datastr1);
	HandleStateChange();
	var parseData=new Object();
	with(jsonobj.weatherinfo){
		parseData={
		city:{innerHTML:city.substring(0,1).toUpperCase()+city.substring(1)},
		weather1:{innerHTML:weather1},
		temp1:{innerHTML:temp1},
		wd1:{innerHTML:fl1},
		img1:{innerHTML:img1},
		img2:{innerHTML:img2},
		index:{innerHTML:index},
		index_d:{innerHTML:index_d},
		index_xc:{innerHTML:index_xc},
		index_uv:{innerHTML:index_uv},
		url8:{href:"http://www.weather.com.cn/weather/"+id+".shtml#7d"},
		date_y:{innerHTML:date_y},
		week:{innerHTML:week},small:{src:"http://m.weather.com.cn/img/c"+img_single+".gif",title:img_title_single},
		small1:{src:"http://m.weather.com.cn/img/c"+img1+".gif",title:img_title1},
		small2:{src:img2==99?"":"http://m.weather.com.cn/img/c"+img2+".gif",title:img_title2},
		big:{src:"http://m.weather.com.cn/img/b"+img_single+".gif",title:img_title_single},
		big1:{src:"http://m.weather.com.cn/img/b"+img1+".gif",title:img_title1},
		big2:{src:(img2==99)?"":"http://m.weather.com.cn/img/b"+img2+".gif",title:(img2==99)?"":img_title2,width:(img2==99)?"0":"50",alt:(img2==99)?"":"img_title2"}
		}
	}
	for( var m in parseData){
		var node=document.getElementById(m);
		var sets=parseData[m];
		if(node){for( var prop in sets ){node[prop]=sets[prop];}}
	}
}
	if(start!=-1){
		var first=start+parseInt(3);
		call=url.substring(first,end);
		returndata(call);
		setURL(ids,"http://www.weather.com.cn/weather/"+call+".shtml");
	}else{
		if(!cookie_info){
			var js = document.createElement("script"); 
			js.setAttribute("type", "text/javascript");
			js.setAttribute("src",rs);
			document.body.insertBefore(js, null);
			function id_callback()
			{ std = id;
			if(typeof(id)=="undefined")
			{id1="101010100";
			setURL(ids,"http://www.weather.com.cn/weather/"+id1+".shtml");
			returndata(id1);}
			else
			{id1=std;
			time=new Date();
			time.setTime(time.getTime()+365*24*60*60*1000*10);
			date=time.toGMTString();
			document.cookie = "newcity1=" + escape(std)+ ";expires="+date;
			setURL(ids,"http://www.weather.com.cn/weather/"+id1+".shtml");
			returndata(std);}}
		}else{
			id1=cookie_info;
			setURL(ids,"http://www.weather.com.cn/weather/"+id1+".shtml");
			returndata(id1);
		}
	}


	function   RQ(pVar,pURL)
	{
		pURL   =   window.location.href;
		try{
		          pURL=decodeURIComponent(pURL)
		}catch(e){
		  }
		var   vars   =pURL.split("?");
		if(vars.length==1)   return   " ";
		var   varsList=vars[1].split("&");
		var   equalString;
		for(var   i=0;equalString=varsList[i];i++){
		          var   equalArray=equalString.split("=");                
		          if(equalArray[0]==pVar)
		                  return   equalArray[1]  ;
		}
	}
	if(RQ("color")=="white")
	{
	document.getElementById("city").style.color="#FFF";
	document.getElementById("weather1").style.color="#FFF";
	document.getElementById("right").style.color="#FFF";
	document.getElementById("url5").style.color="#FFF";
	document.getElementById("url6").style.color="#FFF";
	document.getElementById("url7").style.color="#FFF";
	document.getElementById("url8").style.color="#FFF";
	}
var vjAcc="";var wrUrl="http://c.wrating.com/";var wrSv=0;function vjTrack(C){var B=vjValidateTrack();if(B===false){return}var A=wrUrl+"a.gif"+vjGetTrackImgUrl(C);document.write('<div style="display:none"><img src="'+A+'" id="wrTagImage" width="1" height="1"/></div>');vjSurveyCheck()}function vjEventTrack(D){var C=vjValidateTrack();if(C===false){return}var B=wrUrl+"a.gif"+vjGetTrackImgUrl(D);var A=new Image();A.src=B;A.onload=function(){}}function vjValidateTrack(){if(document.location.protocol=="file:"){return false}if(vjAcc==""){return false}else{if(wrUrl.substr(wrUrl.length-1,1)!="/"){wrUrl+="/"}}return true}function vjGetTrackImgUrl(S){var M=0;var N="expires=Fri, 1 Jan 2038 00:00:00 GMT;";var T=document.location;var P=document.referrer.toString();var D;var H=vjGetDomainFromUrl(T);var K;var V;var Y="";var L=vjFlash();var G="";var Z="";var J="";var O=navigator.appName+" "+navigator.appVersion;var F=new Date();var X=F.getTimezoneOffset()/-60;var A=0;var U="";var R="";if(typeof (H[1])!="undefined"){V=H[1]}else{if(typeof (H[0])!="undefined"){V=H[0]}}if(P!=""){Y=vjGetKeyword(P)}else{if((O.indexOf("MSIE")>=0)&&(parseInt(O.substr(O.indexOf("MSIE")+5),4)>=5)&&(O.indexOf("Mac")==-1)&&(navigator.userAgent.indexOf("Opera")==-1)){try{document.documentElement.addBehavior("#default#homePage");if(document.documentElement.isHomePage(location.href)){P="ishomepage"}}catch(W){}}}if(navigator.cookieEnabled){M=1}if(self.screen){G=screen.width+"x"+screen.height+"x"+screen.colorDepth}else{if(self.java){var Q=java.awt.Toolkit.getDefaultToolkit().getScreenSize();G=Q.width+"x"+Q.height+"x0"}}if(navigator.language){Z=navigator.language.toLowerCase()}else{if(navigator.browserLanguage){Z=navigator.browserLanguage.toLowerCase()}else{Z="-"}}if(navigator.javaEnabled()){A=1}if(M==1){D=document.cookie;if(D.indexOf("vjuids=")<0){K=vjVisitorID();document.cookie="vjuids="+escape(K)+";"+N+";domain="+V+";path=/;"}else{K=vjGetCookie("vjuids")}if(D.indexOf("vjlast=")<0){U="30";var E=vjGetTimestamp(F.getTime()).toString();R=E+"."+E+".30"}else{var a=vjGetCookie("vjlast");var C=a.split(".");var B="";if(typeof (C[0])!="undefined"){R=C[0].toString()}else{R=vjGetTimestamp(F.getTime()).toString()}if(typeof (C[1])!="undefined"){var I=new Date(parseInt(C[1])*1000);if(I.toDateString()!=F.toDateString()){R+="."+vjGetTimestamp(F.getTime()).toString();if(parseInt(vjGetTimestamp(F.getTime())-parseInt(C[1]))/86400>30){U="2"}else{U="1"}if(typeof (C[2])!="undefined"){U+=C[2].substr(0,1)}else{U+="0"}}else{R+="."+C[1].toString();if(typeof (C[2])!="undefined"){U+=C[2]}else{U="10"}}}else{R+="."+vjGetTimestamp(F.getTime()).toString();if(typeof (C[2])!="undefined"){U+=C[2]}else{U="10"}}R+="."+U}document.cookie="vjlast="+R+";"+N+";domain="+V+";path=/;"}J="?a="+F.getTime().toString(16)+"&t=&i="+escape(K);J+="&b="+escape(T)+"&c="+vjAcc;J+="&s="+G+"&l="+Z;J+="&z="+X+"&j="+A+"&f="+escape(L);if(P!=""){J+="&r="+escape(P)+"&kw="+Y}J+="&ut="+U+"&n=";if(typeof (S)=="undefined"){J+="&js="}else{J+="&js="+escape(S)}J+="&ck="+M;return J}function vjGetTimestamp(A){return Math.round(A/1000)}function vjGetKeyword(C){var A=[["baidu","wd"],["baidu","q1"],["google","q"],["google","as_q"],["yahoo","p"],["msn","q"],["live","q"],["sogou","query"],["youdao","q"],["soso","w"],["zhongsou","w"],["zhongsou","w1"]];var B=vjGetDomainFromUrl(C.toString().toLowerCase());var D=-1;var E="";if(typeof (B[0])=="undefined"){return""}for(i=0;i<A.length;i++){if(B[0].indexOf("."+A[i][0]+".")>=0){D=-1;D=C.indexOf("&"+A[i][1]+"=");if(D<0){D=C.indexOf("?"+A[i][1]+"=")}if(D>=0){E=C.substr(D+A[i][1].length+2,C.length-(D+A[i][1].length+2));D=E.indexOf("&");if(D>=0){E=E.substr(0,D)}if(E==""){return""}else{return A[i][0]+"|"+E}}}}return""}function vjGetDomainFromUrl(E){if(E==""){return false}E=E.toString().toLowerCase();var F=[];var C=E.indexOf("//")+2;var B=E.substr(C,E.length-C);var A=B.indexOf("/");if(A>=0){F[0]=B.substr(0,A)}else{F[0]=B}var D=F[0].match(/[^.]+\.(com.cn|net.cn|gov.cn|cn|com|net|org|gov|cc|biz|info)+$/);if(D){if(typeof (D[0])!="undefined"){F[1]=D[0]}}return F}function vjVisitorID(){var A=vjHash(document.location+document.cookie+document.referrer).toString(16);var B=new Date();return A+"."+B.getTime().toString(16)+"."+Math.random().toString(16)}function vjHash(C){if(!C||C==""){return 0}var B=0;for(var A=C.length-1;A>=0;A--){var D=parseInt(C.charCodeAt(A));B=(B<<5)+B+D}return B}function vjGetCookie(D){var B=D+"=";var F=B.length;var A=document.cookie.length;var E=0;while(E<A){var C=E+F;if(document.cookie.substring(E,C)==B){return vjGetCookieVal(C)}E=document.cookie.indexOf(" ",E)+1;if(E==1){break}}return null}function vjGetCookieVal(B){var A=document.cookie.indexOf(";",B);if(A==-1){A=document.cookie.length}return unescape(document.cookie.substring(B,A))}function vjFlash(){var _flashVer="-";var _navigator=navigator;if(_navigator.plugins&&_navigator.plugins.length){for(var ii=0;ii<_navigator.plugins.length;ii++){if(_navigator.plugins[ii].name.indexOf("Shockwave Flash")!=-1){_flashVer=_navigator.plugins[ii].description.split("Shockwave Flash ")[1];break}}}else{if(window.ActiveXObject){for(var ii=10;ii>=2;ii--){try{var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");if(fl){_flashVer=ii+".0";break}}catch(e){}}}}return _flashVer}function vjSurveyCheck(){if(wrSv<=0){return}var C=new Date();var A=C.getTime();var D=Math.random(A);if(D<=parseFloat(1/wrSv)){var B=document.createElement("script");B.type="text/javascript";B.id="wratingSuevey";B.src="http://tongji.wrating.com/survey/check.php?c="+vjAcc;document.getElementsByTagName("head")[0].appendChild(B)}};
var vjAcc="860010-2151010100";
var wrUrl="http://c.wrating.com/";
var wrRandom = 70;
var now = new Date();
var seed = now.getTime();
var randomNumber = Math.random(seed);
if (randomNumber <= parseFloat(1/wrRandom))
{vjTrack("");}
</script>
<noscript><img src="http://c.wrating.com/a.gif?a=&c=860010-2151010100" width="1" height="1"/></noscript>
</body>
</html>

2.weather.jsp
<%
	String cityId=request.getParameter("cityId");
	String content=UrlUtil.readUrlContent("http://m.weather.com.cn/data/"+cityId+".html");
	out.print(content);
%>
<%@ page language="java" import="info.frady.util.*" pageEncoding="UTF-8"%>

3.util,此代码以前发过,是一个抓取工具类。
package info.frady.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class UrlUtil {
	public static String readUrlContent(String url){
		StringBuffer sb=new StringBuffer();
		try{  
			String   strLine;  
			URL   urlObj   =   new   URL(url);  
			InputStream   streamObj   =   urlObj.openStream();  
			InputStreamReader   readerObj   =   new   InputStreamReader(streamObj,"UTF-8");  
			BufferedReader   buffObj             =   new   BufferedReader(readerObj);  
			while((strLine   =   buffObj.readLine())!=null) 
				sb.append(strLine+"\r");
			buffObj.close();  
		}catch(MalformedURLException   e){  
			System.err.println("url   error");  
		}catch(IOException   e){  
			System.out.println("IO   error");  
		} 
		return sb.toString();
	}

}



附件处有完整的代码。
分享到:
评论

相关推荐

    安卓天气预报软件需求分析说明书.pdf

    安卓天气预报软件需求分析说明书 该文件主要介绍了 Android 应用程序开发课程天气预报软件的需求分析报告,涵盖了软件开发中的各个方面,包括需求定义、软件设计、系统功能需求、接口设计、数据存储、安全性需求、...

    discuz天气预报插件

    【标题】:“Discuz天气预报插件” 在网站运营中,Discuz! 是一款非常流行的社区论坛软件,它为用户提供了一个高效、易用的平台来建立和管理在线社区。而“Discuz天气预报插件”是针对这个平台设计的一个实用功能...

    天气预报插件网站

    ### 天气预报插件网站的关键知识点 #### 一、天气预报插件网站概述 - **定义**:天气预报插件网站是指提供天气预报服务的在线平台,通过该平台可以获取到不同地区的实时天气信息、未来几天的天气预测等数据。这类...

    jQuery天气预报插件模板.zip

    《jQuery天气预报插件模板详解》 在网页设计与开发中,为了提升用户体验,许多开发者会集成实时天气预报功能。jQuery作为一个轻量级、高效且易用的JavaScript库,为实现这一功能提供了便利。本篇文章将详细介绍一个...

    漂亮的桌面天气预报软件

    火鸟天气预报(FireBirdWeather)是一款全中文桌面天气预报软件。可实时、准确显示全国2348个县级以上城市天气状况。 永久免费,您可以任意下载、转载、传播。 * 支持开机自启动 * 嵌入桌面,能融入桌面。 ...

    天气预报插件源码

    【标题】"天气预报插件源码"是一个基于JavaScript库jQuery开发的插件,用于在网页上展示实时天气预报信息。这个插件采用div布局,为用户提供了一个直观且易于集成的解决方案来显示当地的天气状况。 【描述】描述中...

    web页面天气预报插件

    web页面第三方天气预报插件

    JAVA天气预报插件

    用于天气预报插件,天气预报 Web 服务,数据来源于中国气象局 http://www.cma.gov.cn/ ,数据每2.5小时左右自动更新一次,准确可靠。包括 340 多个中国主要城市和 60 多个国外主要城市三日内的天气预报数据。 此天气...

    易语言天气预报插件

    易语言天气预报插件源码,天气预报插件,MSN_省级,MSN_市级,MSN_县级,MSN_返回信息,MSN_白天,MSN_晚上,线程_取省,编码_Unicode转ANSI,网络_XmlHttp,编码_UTF8转ANSI,编码_UTF8转Unicode,文本_取中间,线程_市查询,线程_...

    超级漂亮简单实用jQuery天气预报插件

    超级漂亮简单实用jQuery天气预报插件下载。一款界面设计扁平化,简洁大气的世界各地天气预报插件。支持手动输入城市(支持英文或中文拼音)获取天气信息。这款jQuery天气预报插件的特点在于可以动态切换城市,通过...

    边栏纯天气预报插件 for discuz 7.0.rar

    边栏纯天气预报插件是针对Discuz! 7.0这一特定版本的社区论坛软件设计的一款增强功能组件。Discuz! 是一个广泛使用的开源论坛系统,它允许用户创建和管理自己的在线社区。这款插件的目的是为了在论坛的边栏(通常...

    web页面第三方天气预报插件

    在Web开发中,为了增强用户体验,常常会引入各种插件来提供特定的功能,例如天气预报插件。"web页面第三方天气预报插件"是这样的一个工具,它允许开发者轻松地在网页上集成实时天气信息,为用户提供便利。下面将详细...

    jQuery 浮云天气,jQuery天气预报插件

    这是一个开源的、基于jQuery 函数库的 JavaScript 天气预报脚本插件。 代码语法完全符合W3C网页标准,完全兼容各种主流浏览器。 本插件主要用于天气预报的展示。 浏览器兼容: Internet Explorer 6 /7 /8 /9 Fire...

    天气预报插件for 7.0 sp2 tianqi7.0

    【天气预报插件for 7.0 sp2 Tianqi7.0】是一款专为7.0 sp2版本设计的插件,主要用于在论坛环境中提供实时天气预报服务,增强用户互动体验,让论坛用户能够轻松获取所在地的天气信息,提高用户粘性。 这款插件的核心...

    jQuery 3D卡片天气预报插件 支持手机端滑动

    《jQuery 3D卡片天气预报插件:手机端滑动技术解析》 在现代Web开发中,用户体验成为了设计的核心考量之一。为了提升网页的互动性和吸引力,开发者们常常利用JavaScript库,如jQuery,来实现各种动态效果。"jQuery ...

    Java写的天气预报软件

    用Java编写的天气预报软件,可以显示所在地未来5天的温度和天气状况以及当天的生活小提示。  首次运行会产生一个 city.txt 的UTF编码文件纪录城市信息。软件无需安装。可以在任何支持jre 1.6 以上的环境中运行。 ...

    天气预报软件 桌面版

    标题中的“天气预报软件 桌面版”指的是这是一款专为个人计算机用户设计的桌面应用程序,用于查看和获取实时的天气信息。这类软件通常具备简洁的用户界面,便于用户快速查询各地的天气状况,包括温度、湿度、风速、...

    12种格式的天气预报插件

    单城市48小时天气预报插件,元素包括:城市名称、城市定制、今天及明天单天气图标、风力、温度、天气现象描述,增加城市IP自动判断功能,根据访问者的IP自动改变城市。

    android天气预报软件

    【Android天气预报软件开发详解】 Android天气预报软件是一款运行在Android操作系统上的应用程序,它能够为用户提供实时的天气信息,包括气温、湿度、风速、天气状况等,有时还会包含未来几天的天气预报。这款软件...

Global site tag (gtag.js) - Google Analytics