济南网站建设|济南建网站|济南网站制作|济南网站建设公司|山东网站建设|济南软件开发|山东软件开发-国迅网络
济南网站建设|济南网站制作|济南网站建设公司|山东网站建设|APP开发|济南软件开发|山东软件开发
国迅网,织天下!   柚子:  Shirley-网站建设 (1134360006)      橙子:  Lydia-网站建设(3205922021)     柠檬:  Vivian-网站建设(3224697170)    苹果:  销售三部-网站建设(343969037)

网站公告

济南网站制作公司中手机网站建设常见问题和功能实现总结

更新时间:2017-12-20 09:09:16点击次数:911次字号:T|T

由于移动互联网行业的兴起,很多公司和企业都开始慢慢想通过手机互联网挖掘客户和宣传自己的企业。济南网站制作公司的一些公司为了更好的服务于客户资源,也逐渐将主营业务慢慢转向了手机网站建设方面,近期由于工作的需要也有幸去建设了一个比较简单的手机网站,在前面的文章《济南网站建设中手机网站建设定位并实现地图标记和附近商家实现方式》中也详细的提到过该手机网站的一些简单功能,这篇文章中,我们详细介绍在进行手机网站建设的过程中,遇到的一些常见问题和处理方法。

一、手机网站编码形式和网站分辨率情况,网站meta标签书写技巧

大家都知道,用手机浏览网站不同于用PC浏览网站,PC段的网站只需要将网站的宽度设置为一个固定的宽度,然后通过CSS代码,调整为局中就可以了,而在手机上浏览网站不会存在网站局中的情况,都应该遵循网站在任何手机上都要全屏显示的情况,这里就需要对网站的代码单独设置meta标签。还有就是对于手机网站来说一定要用的是html5的标签,因为手机网站上的很多功能都是需要通过html5才能实现的。详细的手机网站头部代码如下图所示:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>济南网站建设www.0531soso.com</title>
<meta charset="UTF-8">
<meta name="HandheldFriendly" content="True">
<meta http-equiv="format-detection" content="telephone=no">
<meta name="viewport" content="width=320,user-scalable=no">
<link href="{CSS_PATH}main320.css" type="text/css" rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
</head>

二、实现手机网站定位所需要的条件和代码

移动互联网之所以如此火爆不仅仅是因为他可以随时随地的可以通过手机浏览互联网的任何内容,更重要的一点是他可以定位用户手机的所在位置,然后通过用户所在的位置信息获取到用户当前位置周边的一些商家、优惠信息、加油站等等。当然手机网站也可以实现这些功能,首先要做的就是需要通过网站对用户进行定位。网站定位原理是,通过载入谷歌地图的API,然后获取到用户当前所在位置的经纬度,然后通过经纬度将数据返回用户具体位置,具体实现代码如下:

①、引用谷歌地图API的JS文件,(网络上有很多,这个是目前发现可以返回值最全的一个)

<script type="text/javascript" language="javascript" src="http://www.google.com/jsapi?key=_YOUR_GOOGLE_API_KEY_HERE_"></script>

②、通过HTML5的navigator.geolocation.getCurrentPosition方法,获得当前经纬度

<script>
function getLocation(){
  if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    }
  }
function showPosition(position)
  {
        var lat = position.coords.latitude;    //此处是当前位置的经度信息,可通过alert直接输出,或通过URL方法、AJAX方法传递给PHP。
        var lng = position.coords.longitude;   //此处是当前位置的纬度信息,可通过alert直接输出,或通过URL方法、AJAX方法传递给PHP。
           
    if( google.loader.ClientLocation.address.city) {
        var locationCity = google.loader.ClientLocation.address.city;  //此处是获得当前位置所在城市的名字,返回当前位置的英文全拼。
        var chengshi = locationCity.toLowerCase();  //此处是获得当前位置所在城市的名字,返回当前位置的英文全拼。
    }
        
  }
          

function showError(error)
  {
  switch(error.code)
    {
    case error.PERMISSION_DENIED:
      x.innerHTML="User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML="Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML="The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML="An unknown error occurred."
      break;
    }
  }
</script>
三、通过两点间经纬度计算出两点间的距离

①、PHP版本:

<?php
function rad($d)
{
return $d * 3.1415926535898 / 180.0;
}
function getdistance($lng1,$lat1,$lng2,$lat2)//根据经纬度计算距离
{
//将角度转为狐度
$radLat1=deg2rad($lat1);
$radLat2=deg2rad($lat2);
$radLng1=deg2rad($lng1);
$radLng2=deg2rad($lng2);
$a=$radLat1-$radLat2;//两纬度之差,纬度<90
$b=$radLng1-$radLng2;//两经度之差纬度<180
$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
return $s;
}
echo round(getdistance($lat1, $lng1, $lat2, $lng2)*1000,2);
?>  

②、MYSQL版本:

这个是将mysql查询出的信息,按照距离进行排序:

SELECT * FROM  $zhekou  order by  2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*($lat1-lat)/360),2)+COS(PI()*$lat1/180)* COS(lat * PI()/180)*POW(SIN(PI()*($lng1-lng)/360),2))) asc

其中:2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*($lat1-lat)/360),2)+COS(PI()*$lat1/180)* COS(lat * PI()/180)*POW(SIN(PI()*($lng1-lng)/360),2)))

就是两点见的距离。

四、PHP获取汉字首字母,并将汉字按照首字母进行分类

<?php
function getfirstchar($s0){
$firstchar_ord=ord(strtoupper($s0{0}));
if (($firstchar_ord>=65 and $firstchar_ord<=91)or($firstchar_ord>=48 and $firstchar_ord<=57)) return $s0{0};
//$s=iconv("UTF-8","gb2312", $s0);
$s=$s0;
$asc=ord($s{0})*256+ord($s{1})-65536;
if($asc>=-20319 and $asc<=-20284)return "A";
if($asc>=-20283 and $asc<=-19776)return "B";
if($asc>=-19775 and $asc<=-19219)return "C";
if($asc>=-19218 and $asc<=-18711)return "D";
if($asc>=-18710 and $asc<=-18527)return "E";
if($asc>=-18526 and $asc<=-18240)return "F";
if($asc>=-18239 and $asc<=-17923)return "G";
if($asc>=-17922 and $asc<=-17418)return "H";
if($asc>=-17417 and $asc<=-16475)return "J";
if($asc>=-16474 and $asc<=-16213)return "K";
if($asc>=-16212 and $asc<=-15641)return "L";
if($asc>=-15640 and $asc<=-15166)return "M";
if($asc>=-15165 and $asc<=-14923)return "N";
if($asc>=-14922 and $asc<=-14915)return "O";
if($asc>=-14914 and $asc<=-14631)return "P";
if($asc>=-14630 and $asc<=-14150)return "Q";
if($asc>=-14149 and $asc<=-14091)return "R";
if($asc>=-14090 and $asc<=-13319)return "S";
if($asc>=-13318 and $asc<=-12839)return "T";
if($asc>=-12838 and $asc<=-12557)return "W";
if($asc>=-12556 and $asc<=-11848)return "X";
if($asc>=-11847 and $asc<=-11056)return "Y";
if($asc>=-11055 and $asc<=-10247)return "Z";
return null;
}

echo getfirstchar;
?>

以上是济南国迅信息科技这次在进行手机网站建设的过程中遇到的一些比较特殊的问题,顺便记录一下,以备下次使用。对于没有过类似开发经验或者正准备进行手机网站开发的朋友一个好的参考,尽量的少走一些弯路,直接拿过去使用就可以了。

(编辑:admin)

新闻中心 | News

More网站知识 | Answers

联系方式 | Contact

地址:济南市历下区轻风路6号
            鲁商盛景广场办公A楼1005

电话:4008-360-670  

            0531-88665598

邮箱:guoxunkeji@163.com

Q Q :343969037   3205922021 

邮编:250014

关于国迅 | 主机邮箱 | 联系我们 | 网站套餐

Copyright 2004-2018 版权所有 All rights reserved.  服务热线:0531-88665598
E-MAIL: guoxunkeji@163.com 国家信息产业部备案 鲁ICP备09033629号 鲁公网安备 37010202000220号

济南网站建设|济南网站制作|济南网站建设公司|山东网站建设|APP开发|济南软件开发|山东软件开发