如何 设置如何查看cordova版本 版本

1. 老版本PhoneGap的配置方法
本文所属图书&>&
PhoneGap是一款优秀的移动跨平台开发框架,开发者通过它能够快速地将Web应用打包成在各个平台上运行的本地APP。本书分4篇共19章,第一篇是入门篇,包括了PhoneGap的小伙伴们、在安卓开发环境下的配置、对HTML 5&&
在1.0.0~2.9.0版本的PhoneGap中均采用此方法进行配置,首先要PhoneGap的文件。在PhoneGap官方网站给出了各个版本PhoneGap文件的链接(网址:/install/),可以选中想要的版本进行下载,如图2-19所示。
单击PhoneGap 2.9.0所代表的链接即可进行下载,下载之后解压得到如图2-20所示的一些文件。doc目录下是该版本PhoneGap的说明文档,lib目录下则是配置PhoneGap所需要的文件。进入lib目录可以看到如图2-21所示的目录列表,各个文件夹均是以操作系统的名称来命名的,如名为android的文件夹中装的就是用于生成安卓APP所要用到的文件。
进入android目录,可以看到如图2-22所示的文件。实际上可以将该目录直接导入到Eclipse中就算完成了配置。不过为了更好地了解PhoneGap的目录结构,亲手进行一次配置还是非常有必要的。
打开Eclipse,找到在2.1.1小节中新建的项目phonegap_test,可以看到其目录结构如图2-23所示。按照下面的步骤对该项目进行配置。
在assets目录下新建文件夹并命名为www,将cordova.js复制到其中,在某些版本中也可能是phonegap.js。
将文件cordova-2.9.0分别导入到Android Private Libraries和libs目录中。并将整个XML目录拖曳到res目录下。
新建一个文件,命名为index.,内容如下:
&&&title&hello world&/title&
&&&script type=&text/javascript& charset=&utf-8& src=& cordova.js &&&/script&
&&&h1&hello world&/h1&
对MainActivity.java做出修改,修改后的内容如图2-24所示。
至此,PhoneGap已经将index.html中的内容打包成可以在安卓系统中直接运行的APP,运行后会在屏幕上显示hello world。此时的项目目录如图2-25所示。
目前虽然已经完成了对PhoneGap的配置,但是熟悉安卓开发的读者一定知道,在开发安卓应用时需要在项目中声明需要用到的权限,否则就会出现错误,因此还要对Mainfest.xml文件做一些修改,修改后的内容如范例2-1所示。
【范例2-1】修改后的Mainfest.xml文件。
&&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
&&& package=&com.example.helloword&
&&& android:versionCode=&1&
&&& android:versionName=&1.0& &
&&& &uses-sdk
&&&&&&& android:minSdkVersion=&8&
&&&&&&& android:targetSdkVersion=&17& /&
&supports-screens
&&&&&&& android:anyDensity=&true&
&&&&&&& android:largeScreens=&true&
&&&&&&& android:normalScreens=&true&
&&&&&&& android:resizeable=&true&
&&&&&&& android:smallScreens=&true&
&&&&&&& android:xlargeScreens=&true& /&
&& &uses-permission android:name=&android.permission.CAMERA& /&
&&& &uses-permission android:name=&android.permission.VIBRATE& /&
&&& &uses-permission android:name=&android.permission.ACCESS_COARSE_LOCATION& /&
&&& &uses-permission android:name=&android.permission.ACCESS_FINE_LOCATION& /&
&&& &uses-permission android:name=&android.permission.ACCESS_LOCATION_EXTRA_COMMANDS& /&
&&& &uses-permission android:name=&android.permission.INTERNET& /&
&&& &uses-permission android:name=&android.permission.RECEIVE_SMS& /&
&&& &uses-permission android:name=&android.permission.RECORD_AUDIO& /&
&&& &uses-permission android:name=&android.permission.RECORD_VIDEO& /&
&&& &uses-permission android:name=&android.permission.MODIFY_AUDIO_SETTINGS& /&
&&& &uses-permission android:name=&android.permission.READ_CONTACTS& /&
&&& &uses-permission android:name=&android.permission.WRITE_CONTACTS& /&
&&& &uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&&& &uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE& /&
&&& &uses-permission android:name=&android.permission.GET_ACCOUNTS& /&
&&& &uses-permission android:name=&android.permission.BROADCAST_STICKY& /&
&&& &application
&&&&&&& android:allowBackup=&true&
&&&&&&& android:icon=&@drawable/ic_launcher&
&&&&&&& android:label=&@string/app_name&
&&&&&&& android:theme=&@style/AppTheme& &
&&&&&&& &activity
&&&&&&&&&&& android:name=&com.example.helloword.MainActivity&
&&&&&&&&&&& android:label=&@string/app_name& &
&&&&&&&&&&& &intent-filter&
&&&&&&&&&&&&&&& &action android:name=&android.intent.action.MAIN& /&
&&&&&&&&&&&&&&& &category android:name=&android.intent.category.LAUNCHER& /&
&&&&&&&&&&& &/intent-filter&
&&&&&&& &/activity&
&&& &/application&
&/manifest&
在学习时,出于方便可以将这些权限一次性全部加入到AndroidMainfest.xml文件中,但是在实际开发中为了安全考虑,需要根据实际情况来加入相应的权限。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'[转载]第二步 使用Cordova 3.0(及以上版本) 创建安卓项目-Android实例教程-eoe 移动开发者论坛 – Powered by Discuz!
.环境搭建视频共享链接
参考资料:
需要eclipse、Andriod SDK、java、Apache ant、Node.js
一.安装adt-eclipse配置Andriod SDK
1、下载adt-eclipse,地址.com/sdk/index.html
2、解压到指定路径,例如F:\adt-eclipse,运行SDK Manager.exe
更新,因为谷歌有时候会被墙,所以在不能访问谷歌服务器时请修改hosts文件,参考:
3、打开计算机属性——高级系统设置——环境变量(如上文)
4、配置环境变量
值:F:\adt-eclipse\sdk(以你安装目录为准,确认里面有tools和add-ons等多个文件夹)
添加值:F:\adt-eclipse\sdk\tools
用户变量: PATH
值:%_HOME%\platform-tools
5、Android SDK配置完成,接下来验证配置是否成功。
6、点击运行——输入cmd——回车——输入adb——回车,如果出现一堆英文,即表示配置成功
二.安装java
1、先下载JAVA,下载地址:
2、安装到指定路径,例如F:\Java
3、打开计算机属性——高级系统设置——环境变量(如上文)
4、配置环境变量
变量: JAVA_HOME
值: 安装路径:F:\Java\jdk1.6.0_10
变量: Path
添加值:%JAVA_HOME%\%JAVA_HOME%\jre\bin
变量: CLASSPATH
值:.;%JAVA_HOME%\lib\dt.%JAVA_HOME%\lib\tools.jar
5、JAVA配置完成,接下来验证配置是否成功。
6、点击运行——输入cmd——回车——输入javac——回车,如果出现一堆英文,即表示配置成功。
三.安装Apache Ant
1、下载Apache ant,地址:
2、解压到指定路径,例如F:\apache-ant
3、打开计算机属性——高级系统设置——环境变量(如上文)
4、配置环境变量
变量: ANT_HOME
值: 你刚解压到的路径:F:\apache-ant
变量: Path
添加值:%ANT_HOME%\bin
5、Apache Ant配置完成,接下来验证配置是否成功。
6、点击运行——输入cmd——回车——输入ANT——回车
如果没有指定build.xml就会输出:
Buildfile: build.xml does not exist!
Build failed
有指定会输出:
BUILD SUCCESSFUL
四.使用Cordova3.0创建项目
1、安装Node.js,下载地址:。
2、打开命令行,运行:npm install -g cordova
注意加@版本号可以安装指定版本,如
npm install -g
3、把盘符转到想要创建项目的目录,比如d:\。
4、运行:cordova create hello com.example.hello HelloWorld
将在d:\hello下创建名为HelloWorld的项目,HTML5文件在d:\hello\www目录里。
5、运行:cd hello
6、运行:cordova platform add android 之后可以看到d:\hello\platforms\android里出现Android项目。
7. 打开Eclispe,导入项目d:\hello\platforms\android,HelloWorld。
8. 可能项目有一些错误,把Android Project Build Target设置为最高等级的API Level一般就能解决。
9. 然后就可以用Eclipse启动项目了。
本文的评论功能被关闭了.Cordova WebApp实战开发(5):编写iOS下获取APP版本号的插件
招聘信息:
本文主讲:学习如何获取iOS当前版本号学习iOS下插件类的编写学习iOS下插件的配置学习iOS下插件的调用主要内容&APP中【检查更新】显示当前版本号插件类的编写在上一篇介绍Andorid插件时我们贴出了很多源码,这里也直接贴出代码,首先是iOS下插件的代码。我们在Plugins下新建两个文件,一个头文件 CDVGcapp.h,一个实现文件 CDVGcapp.m。(文件名自己取,这是我在项目中的名称)CDVGcapp.h#import&#import&@interface&CDVGcapp&:&CDVPlugin
-&(void)version:(CDVInvokedUrlCommand*)@endCDVGcapp.m#import&"CDVGcapp.h"
#import&#import&@implementation&CDVGcapp
-&(void)version:(CDVInvokedUrlCommand*)command
&&&&NSString*&value0&=&[NSString&stringWithFormat:@"%@(%@)",&
&&&&&&&&[[[NSBundle&mainBundle]&infoDictionary]&valueForKey:@"CFBundleShortVersionString"]&,
&&&&&&&&[[NSBundle&mainBundle]&objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey]];
&&&&CDVPluginResult*&result&=&[CDVPluginResult&resultWithStatus:CDVCommandStatus_OK&messageAsString:value0];
&&&&[mandDelegate&sendPluginResult:result&callbackId:command.callbackId];
}Javascript如何得到插件调用后的返回结果?主要通过类似 &[mandDelegate sendPluginResult:result callbackId:command.callbackId]; 代码返回CDVPluginResult,失败和成功都可以触发Javascript执行对应的自定义函数。插件的配置插件写完了,很多人遇到的下一个问题就是怎么配置才能在Javascript中调用呢?我们今天也不解析源码,为什么呢?因为我没看:)不过,我一定要给大家说清楚如何配置,否则就永远调用不了插件。打开staging/config.xml文件,添加feature,必须匹配类名,因为源码中是通过这些去配对的。上面我们写了更新插件,现在就是要配置一下这个插件类到功能名称,我在配置文件中加入了下文粗体部分内容代码贴完了,我还是要再多说一下,CDVGcapp是插件类名Gcapp是 feature 名称,下面大家就知道在哪里会用到了以上文件就是告诉cordova,我们新增了一个Gcapp功能,这个功能会调用我们的原生插件Java对象,接下来就是Javascript如何能调用到这个类了,最重要的就是这个Gcapp功能名称。我们接着就要写Javascript代码来调用这个功能了,如何写呢?继续往下看,我在assets/www/plugins/下新增目录并建立了文件gcapp.js,完整路径是 assets/www/plugins/com.gldjc.guangcaiclient/www/gcapp.js,代码如下:cordova.define('com.gldjc.guangcaiclient.gcapp',&function(require,&exports,&module)&{
&&&&&&&&var&exec&=&require("cordova/exec");
&&&&&&&&function&Gcapp()&{};
&&&&&&&&Gcapp.prototype.version&=&function&(getversion)&{
&&&&&&&&&&&&exec(getversion,&null,&'Gcapp',&'version',&[]);
&&&&&&&&};&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&var&gcapp&=&new&Gcapp();
&&&&&&&&module.exports&=&
});exec是cordova.js中内部的函数,当插件返回 PluginResult.Status.OK 时会执行exec的成功回调函数,如果插件返回的是错误,则会执行exec的错误回调函数。这里我们解释一下&exec(getversion,&null,&'Gcapp',&'version',&[]);其中Gcapp就是我们在上一步骤加的feature名称,大小写匹配着写,通过这个名称,cordova才能找到调用那个java插件类,然后通过version知道调用这个插件类的哪个方法,后面[]中则是参数。因为我这个插件不需要参数,所以为空。Javascript插件类也配对成功了,那如何调用呢?你可以直接在html中包括这个js,不过我们一般会再配置一个js,那就是assets/www/cordova_plugins.js,这样就不用对每个插件类都去写一遍了,cordova会遍历你的配置去加载它们。cordova.define('cordova/plugin_list',&function(require,&exports,&module)&{
module.exports&=&[
&&&&&&&&"file":&"plugins/org.apache.cordova.device/www/device.js",
&&&&&&&&"id":&"org.apache.cordova.device.device",
&&&&&&&&"clobbers":&[
&&&&&&&&&&&&"device"
&&&&&&&&"file":&"plugins/org.apache.cordova.networkinformation/www/network.js",
&&&&&&&&"id":&"org.apache.cordova.networkinformation.network",
&&&&&&&&"clobbers":&[
&&&&&&&&&&&&"navigator.connection",
&&&&&&&&&&&&"navigator.network.connection"
&&&&&&&&"file":&"plugins/org.apache.cordova.networkinformation/www/Connection.js",
&&&&&&&&"id":&"org.apache.cordova.networkinformation.Connection",
&&&&&&&&"clobbers":&[
&&&&&&&&&&&&"Connection"
&&&&&&&&"file":&"plugins/org.apache.cordova.splashscreen/www/splashscreen.js",
&&&&&&&&"id":&"org.apache.cordova.splashscreen",
&&&&&&&&"clobbers":&[
&&&&&&&&&&&&"navigator.splashscreen"
&&&&&&&&"file"&:&"plugins/org.apache.cordova.camera/www/CameraConstants.js",
&&&&&&&&"id"&:&"org.apache.cordova.camera.Camera",
&&&&&&&&"clobbers"&:&[&"Camera"&]
&&&&&&&&"file"&:&"plugins/org.apache.cordova.camera/www/CameraPopoverOptions.js",
&&&&&&&&"id"&:&"org.apache.cordova.camera.CameraPopoverOptions",
&&&&&&&&"clobbers"&:&[&"CameraPopoverOptions"&]
&&&&&&&&"file"&:&"plugins/org.apache.cordova.camera/www/Camera.js",
&&&&&&&&"id"&:&"org.apache.cordova.camera.camera",
&&&&&&&&"clobbers"&:&[&"navigator.camera"&]
&&&&&&&&"file"&:&"plugins/org.apache.cordova.camera/www/CameraPopoverHandle.js",
&&&&&&&&"id"&:&"org.apache.cordova.camera.CameraPopoverHandle",
&&&&&&&&"clobbers"&:&[&"CameraPopoverHandle"&]
&&&&&&&&"file"&:&"plugins/com.phonegap.plugins.barcodescanner/www/barcodescanner.js",
&&&&&&&&"id"&:&"com.phonegap.plugins.barcodescanner.barcodescanner",
&&&&&&&&"clobbers"&:&[&"barcodescanner"&]
&&&&&&&&"file":&"plugins/com.gldjc.guangcaiclient/www/gcapp.js",
&&&&&&&&"id":&"com.gldjc.guangcaiclient.gcapp",
&&&&&&&&"clobbers":&[
&&&&&&&&&&&&"gcapp"
module.exports.metadata&=&
//&TOP&OF&METADATA
&&&&"org.apache.cordova.device":&"0.2.13"
//&BOTTOM&OF&METADATA
});file表示我们去哪里找脚本插件定义js,id是之前我们在gcapp.js中开头cordova.define中写的标识,cordova通过这个标志去找到我们的Javascript插件定义,而clobbers则是我们在前端通过什么对象名来调用这个插件。这里我写的是gcapp,则后面调用则只需要写成gcapp.checkUpdate 即可插件的调用万事俱备,只欠东风,你们可以开始看到结果了,如果从头到这里一步成功,那应该还是蛮兴奋的事情吧。具体前端页面如何设计我就不说了,我的页面效果就如本文最前面的图片,在js中我是这些调用version的:$(document).on("PG_pageinit",&function(event)&{
&&&&gcapp.version(function(version){
&&&&&&&&&&&&$("#version").html(version);
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量11134点击量9353点击量8096点击量6379点击量5600点击量5537点击量5374点击量4930点击量4680
关注微信 每日推荐
扫一扫 浏览移动版
&2015 Chukong Technologies,Inc.
京公网安备89Android移动APP开发笔记——最新版Cordova 5.1.1(PhoneGap)搭建开发环境 - 推酷
Android移动APP开发笔记——最新版Cordova 5.1.1(PhoneGap)搭建开发环境
简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova。它能让你使用HTML5轻松调用本地API接口和发布应用到商店的应用开发平台。有低成本,低开发周期,轻量化等优点。它统一封装了Andriod,IOS,WindowsPhone,Symbian等几大移动开发平台的API,采用HTML5+JavaScript的混合开发的模式来开发智能移动的APP,解决系统兼容等问题。使用Cordova把APP从一个平台移植到另外一个平台只需要把HTML代码跟JS打包一下就可以了,减少了大量的开发成本与开发时间,因此受到广大企业与开发人员的青睐。现在不少的大型网站(例如京东,淘宝等)手机APP都是使用此种混搭模式进行开发。
详细说明可看Cordova的官方网站
一、软件包下载
运行环境:Windows 7
JDK 7 下载:
Android SDK 下载:
ADT-23.0.6下载:
Node-v4.1下载:
Ant-1.9.6下载:
二、JDK安装部署
JDK (Java Development Kit) 是 Sun 针对Java开发员的产品,是现今使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境和基础类库等。常用版本包括 JDK 6、JDK 7、JDK 8。
成功安装 JDK&7 后,必须设置环境变量,让系统感知并能调用 JDK 7。
打开 “控制面板 --& 系统安全 --& 系统 --& 高级系统设置 --& 环境变量”,增加以下配置 :
C:\ jdk7.win32.x86_64_1.7.0.u45
写入JDK安装的路径
;%java_home%\bin
在Path原有值上加入此值
;%java_home%\lib\dt.%java_home%\lib\tools.jar
在classpath的原有值上加入此值
三、Android SDK 安装部署
如果通过Eclipse来开发Andorid应用程序,配置好了JDK变量环境之后可以安装Eclipse,然 后下载Android SDK(Software Development Kit)并在Eclipse中安装ADT插件,这个插件能让Eclipse和Android SDK关联起来。
3.1 ADT安装
ADT 全名 Android Development Tools, 使用Eclipse开发Android,在Eclipse编译IDE环境中安装ADT,可以为Android开发提供开发工具的升级或者变更,方便Android SDK等版本的管理。当然,如果使用Android&Studio等开发工具,ADT可无需安装。
由于中国的特殊情况,防护墙把Google官网给封了,所以在Eclipse Marketplace中直接下载ADT,将出现类似 “Unable to connect to repository
” 等错误。此时除了使用代理外,修改hosts等方法外,还可使用以下方法进行安装。
下载ADT-23.0.6.zip包,打开菜单Help-InstallForSite
直接选择已下载的ADT-23.0.6.zip包
安装完成后,你可以看到新建项目时出现Android选项
3.2 部署环境变量
把下载的Android SDK解压后,新建系统变量,操作类似于JDK1.7系统变量设置。 选择“系统变量”中变量名为“Path”的环境变量,变量后追加&“;D:\MyEclipse Professional 2014\android-sdk-windows\D:\MyEclipse Professional 2014\android-sdk-windows\tools\platform-”
3.3 安装Android SDK
官网上下载Android SDK后,直接打开SDK Manager
由于中国的特殊情况,防护墙把google官网给封了,所以下载前须打开菜单Tools-Options设置代理,否则会出现 “F etching https ://dl-/android/repository/addons_list-2.xml” 等错误
HTTP Proxy Server设置为:android-mirror.
HTTP Proxy Port设置为:8080
也可参考网站
选择所需要的Android版本进行下载,如果下载版本多所占用的空间可能比较大,用的时间也比较长。个人下载了Android 5.1、Android 4.4、Android4.1.2等几个版本,需要大约20G左右。
3.4 绑定Android SDK
打开菜单 windows-preferences ,选择Android项目,把SDK Location绑定到 Android SDK 所在的文件夹,可看到刚刚所下载的各个Android SDK 版本
四、Cordova/PhoneGap 安装部署
在官网下载最新版 Node-v4.1,完成安装后,在环境变量中把path增加配置 “ ;C:\Program Files\nodejs\;” 为了方便管理,建议为Eclipse加入Ant插件。在Ant 官网下载 Ant-1.9.6,完成安装后在环境变量中把path增加配置 “;D:\MyEclipse Professional 2014\apache-ant-1.9.6\bin” 。
此时,在命令提示符窗口执行以下命令 npm install -g cordova 等待三五分钟,完成cordova安装后,系统就会出现以下提示:
五、建立Cordova 测试项目
5.1 建立Android工程基础文件
输入命令 “cordova create AndroidFiles com.sun.androidapp AndroidTest” ,建立工程文件。
其中AndroidFiles是文件夹名称,com.sun.androidapp是包名称,AndroidTest是工程名称
5.2创建工程实例
进入刚创建的文件AndroidFiles, 输入命令 cordova platform add android 建立工程实例
除此以外,还可以用以类似命令创建 iOS、WP、BlackBerrry 等平台的实例
cordova platform add ios
cordova platform add wp7
cordova platform add wp8
cordova platform add blackberry10
此时,再输入命令 cordova&build ,当出现BUILD SUCCESSFUL等字样后,代表项目已成功生成
&此时可以用几种简单的方式对项目进行测试
浏览器测试
输入命令cordova serve android, 在浏览器中打开相关地址 http://localhost:8000
连接手机,选择调试选项,输入命令cordova run android
& 模拟器测试
输入命令cordova emulate android
5.4项目编辑配置
打开Eclipse,导入刚创建的工程,工程中包含两个项目,一个是CordovaLib,一个是MainActivity。MainActivity为测试项目,CordovaLib 为Cordova 的源代码项目。 首先选择项目属性,设置Android所运行的基础平台。
注意:Cordova 5.1.1 中 CordovaLib 要求运行在 Android SDK 5.1.1, API Level 22或以上,否则某些API将报错,MainActivity 运行的平台版本则可以按需要而设。
一般在Eclipse使用Android Virtual Device (AVD) 虚拟器进行项目测试,在运行测试前,先配置运行环境。选择Target-&Manager
按下Create键,配置一台Android虚拟器,用户可根据实际情况配置多台Android虚拟机。
完成配置后,选择Start,启动Android虚拟器
启动调试后,选择你所配置的虚拟机即可运行,在此Cordova的环境部署已经大功告成了,你可以在Eclipse中使用HTML5+Javascript方式完成Android开发了。
使用Cordova/PhoneGap,应用程序的构建可以无需本地代码,直接使用的是Web技术即可。由于这些API在多个设备平台上是一致的,都是基于HTML5 Web标准创建,因此应用程序的移植很方便。Cordova支持iOS、Android、Blackberry、Windows Phone、Palm WebOS、Bada和Symbian等多个平台,只需要使用平台SDK打包成应用程序,可以从每种设备的应用程序商店下载安装。因此,Cordova将成为未来手机混合开发的新趋势。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 cordova 指定sdk版本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信