加了加陌生人微信有风险吗,在他的网页上买了爱奇艺会员,然后就短信来了十多条,支付随心中国平安极速现金侠等

&figure&&img src=&https://pic2.zhimg.com/v2-deb72bd35_b.jpg& data-rawwidth=&760& data-rawheight=&220& class=&origin_image zh-lightbox-thumb& width=&760& data-original=&https://pic2.zhimg.com/v2-deb72bd35_r.jpg&&&/figure&&p&「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试。可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面)。本以为没有 AppID 这个月就与小程序无缘了,庆幸的是微信这两天发布了正式版开发者工具,&strong&无需内测邀请也可以尝鲜了&/strong&。&/p&&p&因此也就有了我与「小程序」的初体验,而我的感受只有一个字——爽!&/p&&h2&选择哪个「小程序」Demo?&/h2&&p&在知名同性交友网站 Github 上,「小程序」的 Demo 不少,但是大多只是简单的 API 演示,有的甚至直接把页面数据写在了 json 文件里(分明有网络请求 API)。我想体验的是能够将服务端和小程序端无缝连接起来(体验够爽)的项目。最终,我选择了腾讯云官方推出的「&a href=&https://link.zhihu.com/?target=https%3A//www.qcloud.com/act/event/yingyonghao.html%3Futm_source%3DCommunity%26utm_medium%3DCommunity%26utm_campaign%3DZhiHu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&小相册&/a&」&a href=&https://link.zhihu.com/?target=https%3A//www.qcloud.com/act/event/yingyonghao.html%3Futm_source%3DCommunity%26utm_medium%3DCommunity%26utm_campaign%3DZhiHu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Demo&/a&。&/p&&p&「小相册」主要实现了以下功能:&/p&&ul&&li&列出对象存储 COS 中的图片列表。&/li&&li&点击左上角上传图片图标,可以调用相机拍照或从手机相册选择图片,并将选中的图片上传到 对象存储 COS 中。&/li&&li&轻按任意图片,可进入全屏图片预览模式,并可左右滑动切换预览图片。&/li&&li&长按任意图片,可将其保存到本地,或从 对象存储 COS 中删除。&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-ecc12c1a7c6f8e373cff38_b.jpg& data-rawwidth=&921& data-rawheight=&635& class=&origin_image zh-lightbox-thumb& width=&921& data-original=&https://pic2.zhimg.com/v2-ecc12c1a7c6f8e373cff38_r.jpg&&&/figure&&p&效果演示图(受开发工具的限制,部分功能尚未实现)&/p&&blockquote&&a href=&https://link.zhihu.com/?target=https%3A//www.qcloud.com/act/event/yingyonghao.html%3Futm_source%3DCommunity%26utm_medium%3DCommunity%26utm_campaign%3DZhiHu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&COS对象存储服务&/a&(Cloud Object Service)是腾讯云推出的面向企业和个人开发者提供的高可用,高稳定,强安全的云端存储服务。可以将任意数量和形式的非结构化数据放入COS,并在其中实现数据的管理和处理。&/blockquote&&p&之所以选择腾讯云的 Demo,一是因为它是&strong&腾讯自家推出的,项目的质量有保障&/strong&;二是因为它是&strong&少有的既讲小程序开发,又介绍云端部署的项目&/strong&。&/p&&p&稍微有点经验的程序员都知道,架构要动静分离,静态文件最好不要放在自己的服务器上,要放在专门用来存储的对象存储服务器COS上,并且用CDN 加速。「小相册」后端采用的是 Node.js,Nginx作为反向代理。&/p&&h2&第一步:搭开发环境&/h2&&p&首先,我们需要在本地搭建好微信「小程序」的开发环境。即下载开发者工具。微信官方已经推出了正式版 IDE,&strong&大家没有必要再去下载破解版了&/strong&。打开&a href=&https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&官网下载页面&/a&,根据自己的操作系统选择。我使用的是 Mac 版。&/p&&p&安装好之后打开运行,会要求微信扫码登陆。之后,就可以看到创建项目的页面了。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-86b099e21ea4e034bdb9b83e1cdec906_b.jpg& data-rawwidth=&614& data-rawheight=&420& class=&origin_image zh-lightbox-thumb& width=&614& data-original=&https://pic4.zhimg.com/v2-86b099e21ea4e034bdb9b83e1cdec906_r.jpg&&&/figure&&p&选择添加项目,没有 AppID 就选无(如果乱写会报错,到时可能无法进入项目)。如果你选择的项目目录为空,请如图所示勾选在“当前目录中创建quick start项目”。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-84dc774c34ada80ffc9c8b88_b.jpg& data-rawwidth=&805& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&805& data-original=&https://pic2.zhimg.com/v2-84dc774c34ada80ffc9c8b88_r.jpg&&&/figure&&p&点击“添加项目”之后,我们会进入开发工具的调试页面。&/p&&h2&第二步:下载「小相册」源码&/h2&&p&接下来,我们下载「小相册」的源码。可以选择直接从&a href=&https://link.zhihu.com/?target=http%3A//imgcache.qq.com/qcloud/la/demo-source/qcloud-applet-album.zip& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯云官网提供的链接&/a&下载,也可以从腾讯云团队的 Github 仓库拉取。我推荐从 Github 仓库拉取,这样可以及时获取最新的代码。&/p&&p&git clone &a href=&https://link.zhihu.com/?target=https%3A//github.com/CFETeam/weapp-demo-album.git& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - CFETeam/weapp-demo-album: The album demo of wechat micro program&/a&&/p&&p&最终,我们会得到类似这样的文件目录。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-97f65def6a_b.jpg& data-rawwidth=&502& data-rawheight=&106& class=&origin_image zh-lightbox-thumb& width=&502& data-original=&https://pic1.zhimg.com/v2-97f65def6a_r.jpg&&&/figure&&p&简单解释下目录结构:&/p&&ul&&li&applet(或app): 「小相册」应用包代码,可直接在微信开发者工具中作为项目打开。&/li&&li&server: 搭建的Node服务端代码,作为服务器和app通信,提供 CGI 接口示例,用于拉取图片资源、上传图片、删除图片。&/li&&li&assets:「小相册」的演示截图。&/li&&/ul&&p&源码下载完成之后,我们打开微信 web 开发者工具,新建项目「小相册」,选择目录applet(或app)。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-635df88a8a_b.jpg& data-rawwidth=&543& data-rawheight=&285& class=&origin_image zh-lightbox-thumb& width=&543& data-original=&https://pic1.zhimg.com/v2-635df88a8a_r.jpg&&&/figure&&h3&「小相册」源码分析&/h3&&p&在进行部署之前,我们来简单分析一下「小相册」的具体代码。毕竟只看效果不是我们的目的,我们的目的是&strong&以「小相册」为例,了解如何开发小程序并与服务端进行交互&/strong&。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-28db4a5b79c4d3c03d8ec7ad33b1ab51_b.jpg& data-rawwidth=&1074& data-rawheight=&1256& class=&origin_image zh-lightbox-thumb& width=&1074& data-original=&https://pic2.zhimg.com/v2-28db4a5b79c4d3c03d8ec7ad33b1ab51_r.jpg&&&/figure&&p&「小相册」包含一个描述整体程序的 app 和多个描述各自页面的 page。主程序 app 主要由三个文件组成,分别是 app.js(小程序逻辑)、app.json(小程序公共设置)和 app.wxss(小程序公共样式表),其中前两个为必备文件。config.js 文件中包含了一些部署域名的设置,现在不用管。&/p&&p&在 pages 目录下,有两个 page 页面,分别是 index 和 album。页面结构算是比较简单的,其中 index 是小程序启动时默认进入的页面。每个页面下,至少要有 .js(页面逻辑)和 .wxml(页面结构)两个文件,.wxss(页面样式表)和 .json(页面配置)文件为选填。你可能注意到了,&strong&这些文件的文件名与父目录的名称相同&/strong&。这是微信官方的规定,目的是减少配置项,方便开发者。&/p&&p&接下来我们以 index 页面为例做简单的解释。index.wxml 是这个页面的表现层文件,其中的代码非常简单,可以分为上下两大部分。&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&&view&
&view class=&page-top&&
&text class=&username&&恭喜你&/text&
&text class=&text-info&&成功地搭建了一个微信小程序&/text&
&view class=&page-btn-wrap&&
&button class=&page-btn& bindtap=&gotoAlbum&&进入相册&/button&
&view class=&page-bottom&&
&text class=&qr-txt&&分享二维码邀请好友结伴一起写小程序!&/text&
&image src=&../../images/qr.png& class=&qr-img&&&/image&
&image src=&../../images/logo.png& class=&page-logo&&&/image&
&/code&&/pre&&/div&&p&页面的演示效果如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-723da1d0b_b.jpg& data-rawwidth=&921& data-rawheight=&635& class=&origin_image zh-lightbox-thumb& width=&921& data-original=&https://pic2.zhimg.com/v2-723da1d0b_r.jpg&&&/figure&&p&我们看到,页面上有一个“进入相册”的按钮。正常理解,点击后该按钮后我们就可以进入相册了(这不废话嘛)。那小程序背后是怎样实现该操作的呢?&/p&&p&在 index.wxml 中,我们发现对应的 button 标签上定义了一个 bindtap 属性,绑定了一个叫做gotoAlbum 的方法。而这个方法可以在 index.js 文件中找到。事实上,文件中也只定义了这一个方法,执行的具体动作就是跳转到 album 页面。&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Page({
// 前往相册页
gotoAlbum() {
wx.navigateTo({ url: '../album/album' });
&/code&&/pre&&/div&&p&album.js 页面中编写了程序的主要逻辑,包括选择或拍摄图片、图片预览、图片下载和图片删除;album.wxml 中三种视图容器 view、scroll-view、swiper均有使用,还提供了消息提示框 toast。具体方法和视图的实现请查看&a href=&https://link.zhihu.com/?target=https%3A//github.com/CFETeam/weapp-demo-album& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&项目源码&/a&。所有的这些功能都写在 Page 类中。&/p&&p&lib 目录下提供了小程序会用的一些辅助函数,包括异步访问和对象存储 COS 的 API。&/p&&p&总的来说,和微信官方宣传的一样,在开发者工具下进行小程序的开发,效率确实提高了很多,而且有很多微信提高的组件和 API。所以,在开发速度这点上的体验还是非常爽的。&/p&&p&另外,由于「小相册」需要使用诸多云端能力,如图片的上传和下载,我们还需要进行服务器端的部署和设置。具体请看接下来的步骤。&/p&&h2&第三步:云端部署 server 代码&/h2&&p&虽然服务端的开发不是本文的重点,但是为了全面地体验「小相册」的整个开发部署流程,我们还是有必要了解服务端的部署,这里我们使用的是腾讯云。&/p&&p&如果你想更爽一点,那么可以选择腾讯云官方提供的小程序云端镜像。「小相册」的服务器运行代码和配置已经打包成腾讯云 CVM 镜像,可以&a href=&https://link.zhihu.com/?target=https%3A//buy.qcloud.com/cvm%3FmarketImgId%3D370& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&直接使用&/a&。可谓是一键部署好云端。&/p&&p&如果你以前没有使用过腾讯云,可以选择免费试用(我已经领取了 8 天的个人版服务器),或者&a href=&https://link.zhihu.com/?target=https%3A//www.qcloud.com/act/event/yingyonghao.html%23section-voucher& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&领取礼包&/a&以优惠的价格购买所需的服务。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-dcef9e0eaf37dcb839a261_b.jpg& data-rawwidth=&1206& data-rawheight=&430& class=&origin_image zh-lightbox-thumb& width=&1206& data-original=&https://pic1.zhimg.com/v2-dcef9e0eaf37dcb839a261_r.jpg&&&/figure&&p&你也可以选择将「小相册」源码中的server文件夹上传到自己的服务器。&/p&&h2&第四步:准备域名和配置证书&/h2&&p&如果你已经有腾讯云的服务器和域名,并配置好了 https,那么可以跳过第 4-6 步。&/p&&p&在微信小程序中,所有的网络请求受到严格限制,不满足条件的域名和协议无法请求。简单来说,就是你的域名必须走 https 协议。所以你还需要为你的域名&a href=&https://link.zhihu.com/?target=https%3A//console.qcloud.com/ssl& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&申请一个证书&/a&。如果没有域名,&a href=&https://link.zhihu.com/?target=https%3A//www.qcloud.com/product/dm.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&请先注册一个&/a&。由于我们没有收到内测,也就暂时不用登录微信公众平台配置通信域名了。&/p&&h2&第五步:Nginx 配置 https&/h2&&p&微信小程序云端示例镜像中,已经部署好了 Nginx,但是还需要在 /etc/nginx/conf.d 下修改配置中的域名、证书、私钥。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c006d14ae7c52a_b.jpg& data-rawwidth=&507& data-rawheight=&266& class=&origin_image zh-lightbox-thumb& width=&507& data-original=&https://pic2.zhimg.com/v2-c006d14ae7c52a_r.jpg&&&/figure&&p&请将红框部分换成自己的域名和证书,并且将 proxy_pass 设置为 Node.js 监听的端口,我的是 9993。&/p&&p&配置完成后,重新加载配置文件并且重启 Nginx。&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&sudo service nginx reload
sudo service nginx restart
&/code&&/pre&&/div&&h2&第六步:域名解析&/h2&&p&我们还需要添加域名记录,将域名解析到我们的云服务器上,这样才可以使用域名进行 https 服务。在腾讯云注册的域名,可以直接使用&a href=&https://link.zhihu.com/?target=https%3A//console.qcloud.com/cns/domains& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&云解析控制台&/a&来添加主机记录,直接选择上面购买的 CVM。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-eb601ff1e39d94a71f945_b.jpg& data-rawwidth=&802& data-rawheight=&703& class=&origin_image zh-lightbox-thumb& width=&802& data-original=&https://pic3.zhimg.com/v2-eb601ff1e39d94a71f945_r.jpg&&&/figure&&p&解析生效后,我们的域名就支持 https 访问了。&/p&&h2&第七步:开通和配置 COS&/h2&&p&由于我们希望实现动静分离的架构,所以选择把「小相册」的图片资源是存储在 COS 上的。要使用 COS 服务,需要登录 &a href=&https://link.zhihu.com/?target=https%3A//console.qcloud.com/cos/overview%3Futm_source%3Djiaocheng%26utm_medium%3Dcos%26utm_campaign%3Dqcloud& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&COS 管理控制台&/a&,然后在其中完成以下操作。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d4ab5da6a1c_b.jpg& data-rawwidth=&1270& data-rawheight=&752& class=&origin_image zh-lightbox-thumb& width=&1270& data-original=&https://pic1.zhimg.com/v2-d4ab5da6a1c_r.jpg&&&/figure&&ol&&li&点击创建 Bucket。会要求选择所属项目,填写相应名称。这里,我们只需要填上自己喜欢的 Bucket 名称即可。&/li&&li&然后在 Bucket 列表中,点击刚刚创建的 Bucket。然后在新页面点击“获取API密钥”。 弹出的页面中包括了我们所需要的三个信息:唯一的 APP ID,一对SecretID和SecretKey(用于调用 COS API)。保管好这些信息,我们在稍后会用到。&/li&&li&&figure&&img src=&https://pic4.zhimg.com/v2-a1e5aea0ab29f3bfe883709_b.jpg& data-rawwidth=&1270& data-rawheight=&694& class=&origin_image zh-lightbox-thumb& width=&1270& data-original=&https://pic4.zhimg.com/v2-a1e5aea0ab29f3bfe883709_r.jpg&&&/figure&最后,在新的 Bucket 容器中创建文件夹,命名为photos。这点后面我们也会提到。&/li&&/ol&&h2&第八步:启动「小相册」的服务端&/h2&&p&在官方提供的镜像中,小相册示例的 Node 服务代码已部署在目录 /data/release/qcloud-applet-album下。进入该目录,如果是你自己的服务器,请进入相应的文件夹。&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&cd /data/release/qcloud-applet-album
&/code&&/pre&&/div&&p&在该目录下,有一个名为 config.js 的配置文件(如下所示),按注释修改对应的 COS 配置:&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&module.exports = {
// Node 监听的端口号
port: '9993',
ROUTE_BASE_PATH: '/applet',
cosAppId: '填写开通 COS 时分配的 APP ID',
cosSecretId: '填写密钥 SecretID',
cosSecretKey: '填写密钥 SecretKey',
cosFileBucket: '填写创建的公有读私有写的bucket名称',
&/code&&/pre&&/div&&p&另外,cd ./routes/album/handlers,修改 list.js,将 const listPath 的值修改为你的Bucket 下的图片存储路径。如果是根目录,则修改为 '/'。当前服务端的代码中将该值设置为了 '/photos' ,如果你在第七步中没有创建该目录,则无法调试成功。&/p&&p&小相册示例使用 pm2 管理 Node 进程,执行以下命令启动 node 服务:&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&pm2 start process.json
&/code&&/pre&&/div&&h2&第九步:配置「小相册」通信域名&/h2&&p&接下来,在微信 web 开发者工具打开「小相册」项目,并把源文件config.js中的通讯域名 host 修改成你自己申请的域名。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b0b4be80d3b2cc22ef2ae_b.jpg& data-rawwidth=&659& data-rawheight=&339& class=&origin_image zh-lightbox-thumb& width=&659& data-original=&https://pic4.zhimg.com/v2-b0b4be80d3b2cc22ef2ae_r.jpg&&&/figure&&p&将蓝色框内的内容修改为自己的域名&/p&&p&然后点击调试,即可打开小相册Demo开始体验。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ade1e1f7ab6c3dbf4222877f_b.jpg& data-rawwidth=&554& data-rawheight=&509& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic2.zhimg.com/v2-ade1e1f7ab6c3dbf4222877f_r.jpg&&&/figure&&br&&p&最后提示一点,截止目前为止,微信小程序提供的上传和下载 API 无法在调试工具中正常工作,需要用手机微信扫码预览体验。但是由于没有内测资格,我们暂时是没办法体验了。&/p&&p&&strong&嗯,就这点不够爽,没有内测邀请。&/strong&&/p&&p&&strong&我的同事还写了另外3个demo的&/strong&「&b&&a href=&https://link.zhihu.com/?target=https%3A//www.qcloud.com/act/event/yingyonghao.html%3Futm_source%3DCommunity%26utm_medium%3DCommunity%26utm_campaign%3DZhiHu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&小程序教程&/a&&/b&」&strong&,大家也可以看看。&/strong&&/p&
「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试。可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面)。本以为没有 AppID 这个月就与小程序无缘了,庆幸的是微信这两天发布了正式版开发者工具,无需内测邀请也…
&figure&&img src=&https://pic3.zhimg.com/v2-5e0ff50dfbba4_b.jpg& data-rawwidth=&1080& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic3.zhimg.com/v2-5e0ff50dfbba4_r.jpg&&&/figure&&blockquote&虽然这个时间点发布这样的文章有报复社会的嫌疑。不过我想这样的小技巧应该是每位学习编程的同学逢年过节必备的。&/blockquote&&p&既然发出祝福的人可以从网上复制一条段子,甚至可能是随手复制七大姑八大姨群发给TA自己的段子,然后在微信群发助手全选联系人,往里面一粘贴点击发送就成功地搞定了所有过去的一年里爱过帮助过鼓励过同舟共济过的亲朋好友们。&br&&/p&&p&那我为什么不可以用类似的方式去搞定企图用群发来搞定我的人呢?&/p&&p&不过我也不是批评群发祝福这种行为,敷衍确实是敷衍了一点,多少也算一份心意。&/p&&p&可是收到祝福的我就很尴尬了,假如我不回显得我不近人情,我要是手动回复了,很明显是我吃亏了,可能一整天的精力都要耗在回复祝福上。并且我也不愿意做那种群发祝福敷衍我的亲朋好友的那种人。&/p&&p&有没有既不浪费时间又能保持礼貌和客套的办法呢?&/p&&blockquote&人生苦短,我用Python&/blockquote&&p&好歹也算是学过两年编程的人,其实只需要12行Python代码,就可以让你的微信拥有自动回复功能了,并且还能够自动判断消息种类和内容,只回复新年祝福相关的消息。&/p&&p&首先确保你安装好了Python和Python的包管理工具pip&/p&&ul&&li&&a href=&http://link.zhihu.com/?target=https%3A//www.python.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Welcome to Python.org&/a&&br&&/li&&li&&a href=&http://link.zhihu.com/?target=https%3A//pip.pypa.io/en/stable/installing/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Installation - pip 9.0.1 documentation&/a&&br&&/li&&/ul&&br&&p&之后只需要再安装两个python库&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&pip install itchat pillow
&/code&&/pre&&/div&&p&然后再随便写这么几行代码&/p&&p&&b&index.py&/b&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&kn&&import&/span& &span class=&nn&&itchat&/span&&span class=&o&&,&/span& &span class=&nn&&time&/span&&span class=&o&&,&/span& &span class=&nn&&re&/span&
&span class=&kn&&from&/span& &span class=&nn&&itchat.content&/span& &span class=&kn&&import&/span& &span class=&o&&*&/span&
&span class=&nd&&@itchat.msg_register&/span&&span class=&p&&([&/span&&span class=&n&&TEXT&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&text_reply&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&):&/span&
&span class=&n&&match&/span& &span class=&o&&=&/span& &span class=&n&&re&/span&&span class=&o&&.&/span&&span class=&n&&search&/span&&span class=&p&&(&/span&&span class=&s1&&'年'&/span&&span class=&p&&,&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'Text'&/span&&span class=&p&&])&/span&&span class=&o&&.&/span&&span class=&n&&span&/span&&span class=&p&&()&/span&
&span class=&k&&if&/span& &span class=&n&&match&/span&&span class=&p&&:&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&send&/span&&span class=&p&&((&/span&&span class=&s1&&'那我就祝你鸡年大吉吧'&/span&&span class=&p&&),&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&])&/span&
&span class=&nd&&@itchat.msg_register&/span&&span class=&p&&([&/span&&span class=&n&&PICTURE&/span&&span class=&p&&,&/span& &span class=&n&&RECORDING&/span&&span class=&p&&,&/span& &span class=&n&&VIDEO&/span&&span class=&p&&,&/span& &span class=&n&&SHARING&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&other_reply&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&):&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&send&/span&&span class=&p&&((&/span&&span class=&s1&&'那我就祝你鸡年大吉吧'&/span&&span class=&p&&),&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&])&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&auto_login&/span&&span class=&p&&(&/span&&span class=&n&&enableCmdQR&/span&&span class=&o&&=&/span&&span class=&bp&&True&/span&&span class=&p&&,&/span&&span class=&n&&hotReload&/span&&span class=&o&&=&/span&&span class=&bp&&True&/span&&span class=&p&&)&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&run&/span&&span class=&p&&()&/span&
&/code&&/pre&&/div&&p&然后在命令行里运行&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&python index.py
&/code&&/pre&&/div&&p&用你自己的微信号扫描二维码(不是扫下面这个,是扫描你自己在命令行里生成的)&/p&&figure&&img src=&https://pic3.zhimg.com/v2-e6ef9b6ca697e58c785c2_b.png& data-rawwidth=&478& data-rawheight=&509& class=&origin_image zh-lightbox-thumb& width=&478& data-original=&https://pic3.zhimg.com/v2-e6ef9b6ca697e58c785c2_r.jpg&&&/figure&&p&登录成功后会有如下提示&/p&&figure&&img src=&https://pic4.zhimg.com/v2-47d6e949e4a62c647fd595b783b8738f_b.png& data-rawwidth=&205& data-rawheight=&70& class=&content_image& width=&205&&&/figure&&p&然后就大功告成啦(本示例在Win10+Python3.5.1环境下运行)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d94fcfd7c52d122f4a130_b.jpg& data-rawwidth=&1242& data-rawheight=&1739& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic1.zhimg.com/v2-d94fcfd7c52d122f4a130_r.jpg&&&/figure&&p&感谢知友们的支持,更新一个进阶版,可以自动获取好友的备注名,并且从祝福语API里随机抽取祝福词进行定制的回复,并且会记录回复过的好友,不会因为重复自动回复露馅。&/p&&p&&b&P.S.&/b&&a href=&http://link.zhihu.com/?target=http%3A//docs.python-requests.org/en/master/user/install/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&requests&/a&库需要再安装一下&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&kn&&import&/span& &span class=&nn&&itchat&/span&&span class=&o&&,&/span& &span class=&nn&&time&/span&&span class=&o&&,&/span& &span class=&nn&&requests&/span&&span class=&o&&,&/span& &span class=&nn&&random&/span&
&span class=&kn&&from&/span& &span class=&nn&&itchat.content&/span& &span class=&kn&&import&/span& &span class=&o&&*&/span&
&span class=&n&&replied&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&nd&&@itchat.msg_register&/span&&span class=&p&&([&/span&&span class=&n&&TEXT&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&text_reply&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&):&/span&
&span class=&k&&if&/span& &span class=&s1&&'年'&/span& &span class=&ow&&in&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'Text'&/span&&span class=&p&&]&/span& &span class=&ow&&and&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&]&/span& &span class=&ow&&not&/span& &span class=&ow&&in&/span& &span class=&n&&replied&/span&&span class=&p&&:&/span&
&span class=&n&&sendGreeting&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&)&/span&
&span class=&nd&&@itchat.msg_register&/span&&span class=&p&&([&/span&&span class=&n&&PICTURE&/span&&span class=&p&&,&/span& &span class=&n&&RECORDING&/span&&span class=&p&&,&/span& &span class=&n&&VIDEO&/span&&span class=&p&&,&/span& &span class=&n&&SHARING&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&other_reply&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&):&/span&
&span class=&k&&if&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&]&/span& &span class=&ow&&not&/span& &span class=&ow&&in&/span& &span class=&n&&replyed&/span&&span class=&p&&:&/span&
&span class=&n&&sendGreeting&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&sendGreeting&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&):&/span&
&span class=&k&&global&/span& &span class=&n&&replied&/span&
&span class=&n&&friend&/span& &span class=&o&&=&/span& &span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&search_friends&/span&&span class=&p&&(&/span&&span class=&n&&userName&/span&&span class=&o&&=&/span&&span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&])&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&send&/span&&span class=&p&&((&/span&&span class=&n&&friend&/span&&span class=&p&&[&/span&&span class=&s1&&'RemarkName'&/span&&span class=&p&&]&/span&&span class=&o&&+&/span&&span class=&s1&&','&/span&&span class=&o&&+&/span&&span class=&n&&getRandomGreeting&/span&&span class=&p&&()),&/span& &span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&])&/span&
&span class=&n&&replied&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&msg&/span&&span class=&p&&[&/span&&span class=&s1&&'FromUserName'&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&getRandomGreeting&/span&&span class=&p&&():&/span&
&span class=&n&&response&/span& &span class=&o&&=&/span& &span class=&n&&requests&/span&&span class=&o&&.&/span&&span class=&n&&get&/span&&span class=&p&&(&/span&&span class=&s2&&&http://www.xjihe.com/api/life/greetings?festival=新年&page=10&&/span&&span class=&p&&,&/span& &span class=&n&&headers&/span& &span class=&o&&=&/span& &span class=&p&&{&/span&&span class=&s1&&'apiKey'&/span&&span class=&p&&:&/span&&span class=&s1&&'sQS2ylErlfm9Ao2oNPqw6TqMYbJjbs4g'&/span&&span class=&p&&})&/span&
&span class=&n&&results&/span& &span class=&o&&=&/span& &span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&n&&json&/span&&span class=&p&&()[&/span&&span class=&s1&&'result'&/span&&span class=&p&&]&/span&
&span class=&n&&greeting&/span& &span class=&o&&=&/span& &span class=&n&&results&/span&&span class=&p&&[&/span&&span class=&n&&random&/span&&span class=&o&&.&/span&&span class=&n&&randrange&/span&&span class=&p&&(&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&results&/span&&span class=&p&&))][&/span&&span class=&s1&&'words'&/span&&span class=&p&&]&/span&
&span class=&k&&return&/span& &span class=&n&&greeting&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&auto_login&/span&&span class=&p&&(&/span&&span class=&n&&enableCmdQR&/span&&span class=&o&&=&/span&&span class=&bp&&True&/span&&span class=&p&&,&/span&&span class=&n&&hotReload&/span&&span class=&o&&=&/span&&span class=&bp&&True&/span&&span class=&p&&)&/span&
&span class=&n&&itchat&/span&&span class=&o&&.&/span&&span class=&n&&run&/span&&span class=&p&&()&/span&
&/code&&/pre&&/div&&b&效果预览&/b&&figure&&img src=&https://pic2.zhimg.com/v2-f1bebfe10d9_b.jpg& data-rawwidth=&1242& data-rawheight=&767& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic2.zhimg.com/v2-f1bebfe10d9_r.jpg&&&/figure&&p&做朋友最重要的是真诚,做人最重要的是厚道。&/p&&p&当然不管怎样,祝福终归是祝福,心意多少也算是一点心意。过年过节最重要的还是开心嘛~&/p&&p&最后的最后,余博伦还是在这里祝各位知友们鸡年大吉~新春愉快啦~&/p&&p&参考资料:&/p&&ul&&li&感谢来自@&a href=&https://www.zhihu.com/people/littlecoder-3/& class=&internal&&LittleCoder&/a&的&a href=&http://link.zhihu.com/?target=https%3A//github.com/littlecodersh/ItChat& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&littlecodersh/ItChat&/a&&/li&&li&如果还是不能正常使用请查看&a href=&http://link.zhihu.com/?target=https%3A//itchat.readthedocs.io/zh/latest/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&官方文档&/a&&/li&&/ul&
虽然这个时间点发布这样的文章有报复社会的嫌疑。不过我想这样的小技巧应该是每位学习编程的同学逢年过节必备的。既然发出祝福的人可以从网上复制一条段子,甚至可能是随手复制七大姑八大姨群发给TA自己的段子,然后在微信群发助手全选联系人,往里面一粘贴…
&p& 本文来自于&a href=&http://link.zhihu.com/?target=https%3A//bugly.qq.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯bugly开发者社区&/a&,未经作者同意,请勿转载,原文地址:&a href=&http://link.zhihu.com/?target=http%3A//dev.qq.com/topic/acc3c5& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&微信小程序“信用卡还款”项目实践&/a&&/p&&blockquote&&p&作者:peggy&/p&&/blockquote&&h2&小程序概述&/h2&&p& 11月3日晚,微信团队对外宣布,微信小程序开放公测。开发者可登陆微信公众平台申请,开发完成后可以提交审核,公测期间暂不能发布。&/p&&p& 我们前一段时间也进行了小程序开发,现在来对之前的开发体验做一个总结。&/p&&h4&1. 小程序是什么?&/h4&&p& 微信小程序是一种介于原生app、和web app的hybrid。通过微信进行加载,实现类似原生app的流畅。相对原生app来说,小程序更加轻量、更新实时、跨平台;相对web app来说,小程序资源离线,体验更流畅。&/p&&p& 微信小程序的设计目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务。&/p&&p& 不说那么多了, 先来看看小程序的效果:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f97ab7f6bb42b1d852a5e3_b.jpg& data-rawwidth=&1851& data-rawheight=&1100& class=&origin_image zh-lightbox-thumb& width=&1851& data-original=&https://pic4.zhimg.com/v2-f97ab7f6bb42b1d852a5e3_r.jpg&&&/figure&&br&&p& 看完效果,是不是对开发充满好奇~&/p&&h4&2. 小程序的实现机制&/h4&&p& 小程序的开发是基于微信提供的一套应用框架进行开发的。微信通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,对上层提供了一套完整的Javascript Api,使得开发者能够非常方便的使用到微信客户端提供的各种基础功能,快速构建一个应用。框架设计如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-bc35ede1c5df932ca65c78ea_b.png& data-rawwidth=&555& data-rawheight=&525& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic3.zhimg.com/v2-bc35ede1c5df932ca65c78ea_r.jpg&&&/figure&&br&&p& 框架提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层之间通过&strong&单向数据绑定&/strong&进行数据传输,使开发者更加聚焦于数据与逻辑上。&/p&&h4&3. 支持的特性&/h4&&p& 接下来我们来看一下,微信框架具体提供的特性:&/p&&p& wxml:一切皆组件(视图组件)&/p&&ul&&li&view组件(类似 H5中的div)&/li&&li&input组件(type = digit,有带小数点的9宫格键盘)&/li&&li&modal弹窗组件 (对应的wxml、效果如下)(该组件已换js 实现wx.showModal())&/li&&/ul&&figure&&img src=&https://pic4.zhimg.com/v2-517f4ef1cceb4e6e1fa16647_b.png& data-rawwidth=&643& data-rawheight=&83& class=&origin_image zh-lightbox-thumb& width=&643& data-original=&https://pic4.zhimg.com/v2-517f4ef1cceb4e6e1fa16647_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-e6bd34b2cbca493ed6ddfc_b.jpg& data-rawwidth=&529& data-rawheight=&505& class=&origin_image zh-lightbox-thumb& width=&529& data-original=&https://pic1.zhimg.com/v2-e6bd34b2cbca493ed6ddfc_r.jpg&&&/figure&&br&&p& 更多wxml组件,请查看微信公众平台小程序文档&/p&&h4&4. 功能API:&/h4&&ul&&li&支付&/li&&li&微信信息的获取&/li&&li&网络请求&/li&&li&录音&/li&&li&上传/下载文件&/li&&li&webSocket&/li&&li&访问相册&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-565a7d6455fcbb28504b85_b.png& data-rawwidth=&697& data-rawheight=&348& class=&origin_image zh-lightbox-thumb& width=&697& data-original=&https://pic2.zhimg.com/v2-565a7d6455fcbb28504b85_r.jpg&&&/figure&&br&&p& 更多详细的API,请查看微信公众平台小程序文档&/p&&h4&5. 其他:&/h4&&ul&&li&下发消息通知&/li&&li&简要的统计(pv、uv)&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-efd3d86eeafb0f6dce977d_b.jpg& data-rawwidth=&645& data-rawheight=&403& class=&origin_image zh-lightbox-thumb& width=&645& data-original=&https://pic2.zhimg.com/v2-efd3d86eeafb0f6dce977d_r.jpg&&&/figure&&br&&p& 现在我们来具体开发~&/p&&h2&小程序的开发流程&/h2&&h3&一、获取微信小程序的 AppID&/h3&&figure&&img src=&https://pic4.zhimg.com/v2-03e08a278b3e7a984e289ed27fe3efdf_b.png& data-rawwidth=&649& data-rawheight=&260& class=&origin_image zh-lightbox-thumb& width=&649& data-original=&https://pic4.zhimg.com/v2-03e08a278b3e7a984e289ed27fe3efdf_r.jpg&&&/figure&&br&&h3&二、创建项目&/h3&&p& 创建项目,需要通过开发者工具来完成。(工具在微信小程序公众平台下载)&/p&&figure&&img src=&https://pic3.zhimg.com/v2-6a96ecb2efc2f80a87af7bbbace87bfe_b.png& data-rawwidth=&644& data-rawheight=&282& class=&origin_image zh-lightbox-thumb& width=&644& data-original=&https://pic3.zhimg.com/v2-6a96ecb2efc2f80a87af7bbbace87bfe_r.jpg&&&/figure&&br&&h3&三、编写代码&/h3&&p& 首先我们来看一下小程序的目录结构:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-85d3cb956bfcca936db7_b.png& data-rawwidth=&555& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic4.zhimg.com/v2-85d3cb956bfcca936db7_r.jpg&&&/figure&&br&&p& 微信对小程序的开发有些规定:&/p&&p& 上图左侧3个文件是放在小程序的根目录中,其他文件由开发者自由控制。&/p&&ul&&li&app.js是小程序的脚本代码,用来监听并处理小程序的生命周期函数、声明全局变量&/li&&li&&p&app.json 是对整个小程序的全局配置,配置小程序是由哪些页面组成,配置小程序的窗口背景色等。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c3b14efbc65bf6f04713c53aad72c671_b.jpg& data-rawwidth=&554& data-rawheight=&346& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic2.zhimg.com/v2-c3b14efbc65bf6f04713c53aad72c671_r.jpg&&&/figure&&br&&/li&&br&&li&app.wxss 是整个小程序的公共样式表&/li&&/ul&&p&&strong&其中app.js,app.json是必需的。&/strong&&/p&&p& 小程序页面是由同路径下同名的四个不同后缀文件的组成:&/p&&ul&&li&.js后缀的文件是脚本文件&/li&&li&.json后缀的文件是配置文件&/li&&li&.wxss后缀的是样式表文件&/li&&li&.wxml后缀的文件是页面结构文件&/li&&/ul&&p& 在H5开发中,我们是通过在页面中,引入对应的css、js,而小程序开发不需要在wxml中引入,它们是通过相同的名称,将页面与逻辑js、样式进行关联匹配。&/p&&p& 接下来,我们动手具体开发吧~&/p&&h4&框架:小程序内嵌微信框架,不需额外框架&/h4&&p& 一般来说我们开始开发,都会从框架开始进行设计。而小程序在封装了一个为客户端设计的框架,作为小程序的开发者是基于该框架开发的,目前现有的框架不用考虑,并且也不需要考虑。&/p&&p& 现有的框架基本都是建立在window、document对象上。小程序是没有window、document,或者说没有浏览器BOM这个宿主环境。你可以理解为小程序的宿主环境是类似node的宿主环境,而不是浏览器客户端。关于这个环境的设计,感兴趣的童鞋可以参考PWS&/p&&h4&模块化:形式上支持CommonJs,加载引用更像ES6&/h4&&p& 小程序形式支持CommonJS,通过require加载,跟node、seajs类似。但是通过require加载的是引用的赋值,而不是CommonJS中的值的缓存。&/p&&p& 小程序的模块书写:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fce5f41cc737bc9d472b629_b.png& data-rawwidth=&633& data-rawheight=&271& class=&origin_image zh-lightbox-thumb& width=&633& data-original=&https://pic2.zhimg.com/v2-fce5f41cc737bc9d472b629_r.jpg&&&/figure&&br&&p& 小程序的模块运行(类似node,框架会自动添加外层define):&/p&&figure&&img src=&https://pic3.zhimg.com/v2-6598ecedf23796afbd48a_b.png& data-rawwidth=&629& data-rawheight=&252& class=&origin_image zh-lightbox-thumb& width=&629& data-original=&https://pic3.zhimg.com/v2-6598ecedf23796afbd48a_r.jpg&&&/figure&&br&&h4&模块化:UI组件设计&/h4&&p& 在开发时,与视图相关的组件模块化时,我们可能需要注意一下。例如弹框,在H5中,我们一般是将其封装成一个模块组件,这样可以复用。在小程序中,视图只能在wxml中,不能动态生成。&/p&&p& 首先,我们看一下微信的弹窗的视图组件modal,微信之前给的api是这样的(该组件微信已经使用其他方式实现, 这里用它来描述问题):&/p&&figure&&img src=&https://pic4.zhimg.com/v2-90fe47f4f18fef2894eafa05f3e7c8f3_b.png& data-rawwidth=&337& data-rawheight=&607& class=&content_image& width=&337&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-a669a912fcd4120f3edde_b.png& data-rawwidth=&821& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&821& data-original=&https://pic3.zhimg.com/v2-a669a912fcd4120f3edde_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-2774cfdbecd7debed701eecbe771215f_b.png& data-rawwidth=&766& data-rawheight=&622& class=&origin_image zh-lightbox-thumb& width=&766& data-original=&https://pic4.zhimg.com/v2-2774cfdbecd7debed701eecbe771215f_r.jpg&&&/figure&&br&&p& 看到这样,你是否有联想,如果一个页面需要使用100个弹框,开发者需要创建100wxml组件,及注册对应的100个确定按钮的事件,100个取消按钮的事件。这显然是不合理的。&/p&&p& 能不能在框架上进行封装成一个通用组件,开发者只需传入对应的事件句柄即可?后期微信可能会考虑封装吧~&/p&&p&&strong&NO~!&/strong&&/p&&p& 为什么呢?我们从框架组件设计来看,框架本身采用面向状态的编程方式,组件部分类似redux的设计(实际不是redux实现的)&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1bcdafd147b_b.jpg& data-rawwidth=&555& data-rawheight=&456& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic4.zhimg.com/v2-1bcdafd147b_r.jpg&&&/figure&&br&&p& 组件的View在action操作后,只能通过action的业务处理进行更新View。而框架是单向数据绑定,无法自动更新。 &/p&&p& 对于这一类View组件自带action的,建议进行必要再封装。封装可以考虑&strong&aop的方式动态的注册&卸载&/strong&。&/p&
1. 定义组件的通用模版
&figure&&img src=&https://pic1.zhimg.com/v2-fe0b9d8a518_b.jpg& data-rawwidth=&555& data-rawheight=&278& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic1.zhimg.com/v2-fe0b9d8a518_r.jpg&&&/figure&&br&
2. aop方式封装组件的逻辑
&p& 1)组件的默认配置:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c79cb3af8aa5b542a5a25_b.jpg& data-rawwidth=&555& data-rawheight=&280& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic2.zhimg.com/v2-c79cb3af8aa5b542a5a25_r.jpg&&&/figure&&br&&p& 2)组件的封装实现&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9d16f9d11dabe58cfcbd_b.jpg& data-rawwidth=&555& data-rawheight=&446& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic2.zhimg.com/v2-9d16f9d11dabe58cfcbd_r.jpg&&&/figure&&br&
3. 组件的使用:
&p& 1)在页面wxml中引入组件的模版&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e73edea78ea5bd92dbd6d02d_b.png& data-rawwidth=&586& data-rawheight=&56& class=&origin_image zh-lightbox-thumb& width=&586& data-original=&https://pic2.zhimg.com/v2-e73edea78ea5bd92dbd6d02d_r.jpg&&&/figure&&br&&p& 2)在页面js中,随时不限次数使用弹框&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ea22bba4cc618f1328e1_b.png& data-rawwidth=&582& data-rawheight=&196& class=&origin_image zh-lightbox-thumb& width=&582& data-original=&https://pic2.zhimg.com/v2-ea22bba4cc618f1328e1_r.jpg&&&/figure&&br&&p&&strong&目前该组件微信已经封装(api:wx.showModal()调用弹框),不过action不能自动更新的特性依旧存在,开发者如果需要自定义其他带有交互的UI组件时,依然会遇见以上问题,可以参考以上解决思路。&/strong&&/p&&h4&具体页面开发&/h4&&p& 对于业务页面的开发,可以将页面视为一个页面组件。在这个页面组件,完成了以下工作:&/p&&ol&&li&负责初始化组件state(微信)&/li&&li&负责组合子view组件形成页面效果(开发者)&/li&&li&确定js 与view 匹配的数据(开发者)&/li&&li&负责注册业务逻辑对象提供的业务逻辑方法(开发者)&/li&&li&负责管理业务逻辑对象(开发者)&/li&&/ol&&figure&&img src=&https://pic1.zhimg.com/v2-b039ea26a92a26c3c483c0_b.png& data-rawwidth=&450& data-rawheight=&343& class=&origin_image zh-lightbox-thumb& width=&450& data-original=&https://pic1.zhimg.com/v2-b039ea26a92a26c3c483c0_r.jpg&&&/figure&&br&&p&&strong&1) index.wxml&/strong&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2b1a8ffcea_b.jpg& data-rawwidth=&555& data-rawheight=&384& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic4.zhimg.com/v2-2b1a8ffcea_r.jpg&&&/figure&&br&&p&&strong&2) index.js&/strong&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e6de0304_b.png& data-rawwidth=&555& data-rawheight=&293& class=&origin_image zh-lightbox-thumb& width=&555& data-original=&https://pic1.zhimg.com/v2-e6de0304_r.jpg&&&/figure&&br&&p& 页面wxml与页面js的通信如下(简化了微信框架的工作)&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f0cd3cd9f43a89fa17586f_b.png& data-rawwidth=&545& data-rawheight=&363& class=&origin_image zh-lightbox-thumb& width=&545& data-original=&https://pic4.zhimg.com/v2-f0cd3cd9f43a89fa17586f_r.jpg&&&/figure&&br&&p&&strong&在页面开发我们需要注意的有:&/strong&&/p&&ul&&li&&p&&strong&index.js中的data数据只读&/strong&&/p&&p&页面js中,data数据是需要约定为只读。框架是单向数据绑定,修改data中的数据不会自动更新View;更新view,需要使用setData()方法。setData()更新View时,与data中的数据进行Diff比较,不同才会更新。这样如果直接修改data,很容易造成data中的数据与View不一致。&/p&&/li&&br&&li&&strong&setData单次设置的数据不能超过1024kB,需要避免一次设置过多的数据。&/strong&&/li&&li&&strong&template,这些模版具有自己独立的作用域。&/strong&&/li&&li&&strong&支持ES6中的…展开模块数据。&/strong&&/li&&/ul&&p& {{…cardInfo}},模版中的数据{{card_name}}、{{bank_simple_name}},对应data中的数据就是data:{cardInfo:{card_name“”,bank_simple_name:“”}},方便了对子view的控制。&/p&&p&&strong&这样就完成了页面级的开发~~YES!&/strong&&/p&&h2&小程序与H5的区别&/h2&&p& 在具体写代码,小程序与H5的开发有什么区别呢?&/p&&h4&javascript:&/h4&&p&&strong&(一)限制:&/strong&&/p&&ul&&li&&strong&通过传入字符串来执行代码的能力都禁用了&/strong&&/li&&/ul&&p& 出于安全考虑,凡是通过传入字符串来执行代码的能力都禁用了。具体被禁掉的原生功能有:new Function、eval、Generator。这是同时也比较有效的避免了类似H5 中xss的问题。&/p&&p& 禁掉的这些功能,对我们开发来说影响比较显著的应该是字符串转json,以往我们都是通过new Function、eval来处理后台cgi的返回。(移动端一般封装在zepto之类的框架中),小程序开发需要改变一下具体实现。&/p&&ul&&li&&strong&与浏览器BOM相关的api都是没有的。&/strong&&/li&&/ul&&p& 在这些BOM中,对开发影响最大的应该是没有cookie。因为其他功能例如storage,小程序有类似的处理方法。而cookie在web开发中是与后台登录相关的。&/p&&p& 小程序中是没有Cookie的,为了兼容目前大部分web app 的登录管理是使用cookie的。小程序在请求发送时,客户端可以动态的给请求设置Header发送报文的cookie。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-15d42cf9e51fd1a9fd67b5_b.png& data-rawwidth=&621& data-rawheight=&175& class=&origin_image zh-lightbox-thumb& width=&621& data-original=&https://pic2.zhimg.com/v2-15d42cf9e51fd1a9fd67b5_r.jpg&&&/figure&&br&&p& 注意一下cookie本身不能在客户端进行读写。&/p&&p& 因为没有cookie,H5中的csrf问题理论上是根本解决了。小程序是否存在其他客户端安全问题,需要技术、时间来检验~&/p&&p&&strong&(二) 优化&/strong&&/p&&ul&&li&&strong&登录:&/strong&&/li&&/ul&&p& H5中,通过微信授权一般采用url重定向的方式获取code;在小程序中,通过wx.login获取code,这样避免了之前登录重定向的问题。&/p&&ul&&li&&strong&storage:&/strong&&/li&&/ul&&p& 小程序用storage替代了H5中的localstorage、sessionstorage。storage对每个小程序的大小是10M,支持同步和异步。&/p&&ul&&li&&strong&微信支付路径不再受限&/strong&&/li&&/ul&&p&&strong&(三) 不便&/strong&&/p&&p& 1)每个页面是需要手动在app.json中进行注册。如果没有注册,是不执行该页面的。&br& 2)打开的页面有5个的限制,在开发时需要主要控制打开页面的数量&/p&&h4&wxss:&/h4&&ul&&li&wxss 不再支持媒体查询&/li&&li&增加了app的flex布局&/li&&li&引入rpx的概念&/li&&/ul&&blockquote&&p&rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在iPhone6上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。&/p&&/blockquote&&ul&&li&wxss中,不能使用背景图片。这跟框架的设计思想认为一切皆组件有关&/li&&li&wxss动画不支持(目前)&/li&&li&不支持多层选择器.classA {} – 支持; .classA
.classB {} – 不支持 (api说明表示只支持单层选择器,重构测试有时多层是支持的)&/li&&/ul&&h3&四、调试&/h3&&p& 开发完成后,我们进行调试查看效果,跟移动开发差不多,增加了手机端的log。&/p&&p&&strong&开发工具调试:&/strong&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b91d3dc789ea1d21aa4f2edae8a37020_b.jpg& data-rawwidth=&602& data-rawheight=&371& class=&origin_image zh-lightbox-thumb& width=&602& data-original=&https://pic1.zhimg.com/v2-b91d3dc789ea1d21aa4f2edae8a37020_r.jpg&&&/figure&&br&&p&&strong&手机客户端:&/strong&点击右上角开启调试&/p&&figure&&img src=&https://pic1.zhimg.com/v2-05ebd2877125ddc4d330_b.jpg& data-rawwidth=&248& data-rawheight=&442& class=&content_image& width=&248&&&/figure&&br&&h3&五、构建&/h3&&p& 小程序是采用类似node的本地加载模块,不需考虑seajs中的模块合并,只需要uglify即可。当然如果你采用ES6开发,那还是需要babel一下。&/p&&h3&六、测试环境&/h3&&p& 具体微信还在调整中…&/p&&h3&七、发布&/h3&&p& 在开发工具中,进行全量提交,通过微信审核后,在微信小程序平台进行最后发布。文件发布加载的流程如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-7b16ef3f26da60af4f74bc_b.jpg& data-rawwidth=&622& data-rawheight=&444& class=&origin_image zh-lightbox-thumb& width=&622& data-original=&https://pic3.zhimg.com/v2-7b16ef3f26da60af4f74bc_r.jpg&&&/figure&&br&&p&&strong&这样小程序的整体开发发布就Over了~&/strong&&/p&&h2&个人对小程序产品的看法:&/h2&&p&&strong&优势:&/strong&&/p&&ol&&li&&strong&低门槛下载&/strong&,作为微信的一环,可以通过微信直接进入,即可使用。几乎可以认为是网页,没有下载门槛。&/li&&li&&strong&跨平台&/strong&,微信客户端底层封装,支持小程序跨平台&br&3.&strong&开发成本低&/strong&,通过之前的开发对比,小程序的开发比web app 的开发成本还低,并且前端的资源存放、发布运维都集成在微信中(如果和腾讯云功能合加,纯属联想~~ 呵呵)&/li&&li&页面仿原生,&strong&体验更流畅&/strong&&/li&&li&小程序&strong&可以使用微信的支付功能&/strong&&/li&&/ol&&p&&strong&局限:&/strong&&/p&&ol&&li&开发基于微信框架,部分功能受限,不支持现有的其他第三方插件;&/li&&li&小程序页面只能同时打开5个,如果交互流程较长难以支持;&/li&&li&小程序包大小限制为1M(目前),所有只适合轻量级&/li&&/ol&&p& 关于微信框架api 的具体内容,请参考&/p&&blockquote&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/debug/wxadoc/dev/index.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&mp.weixin.qq.com/debug/&/span&&span class=&invisible&&wxadoc/dev/index.html&/span&&span class=&ellipsis&&&/span&&/a&&/p&&/blockquote&&p& 建议在开发小程序时不要以web app的开发思维去思考~&/p&&h2&结语&/h2&&p& 从8月开始加入该项目的内测开发,期间经过了几次地动山摇的调整,及不断的痛苦的迭代,所幸的是框架、开发工具已经趋于完善稳定。期待小程序的正式亮相~~&/p&&p& 更多精彩内容欢迎关注&a href=&http://link.zhihu.com/?target=https%3A//bugly.qq.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&bugly&/a&的微信公众账号: &/p&&figure&&img src=&https://pic3.zhimg.com/3f2c1b1ff77fcedf3fb54616_b.jpg& class=&content_image&&&/figure&&p&&a href=&http://link.zhihu.com/?target=https%3A//bugly.qq.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯 Bugly&/a&是一款专为移动开发者打造的质量监控工具,帮助开发者快速,便捷的定位线上应用崩溃的情况以及解决方案。智能合并功能帮助开发同学把每天上报的数千条 &a href=&http://link.zhihu.com/?target=https%3A//bugly.qq.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Crash&/a& 根据根因合并分类,每日日报会列出影响用户数最多的崩溃,精准定位功能帮助开发同学定位到出问题的代码行,实时上报可以在发布后快速的了解应用的质量情况,适配最新的 iOS, Android 官方操作系统,鹅厂的工程师都在使用,快来加入我们吧!&/p&&br&
本文来自于,未经作者同意,请勿转载,原文地址:作者:peggy小程序概述 11月3日晚,微信团队对外宣布,微信小程序开放公测。开发者可登陆微信公众平台申请,开发完成后可以提交审核,公测期间暂不能发…
&figure&&img src=&https://pic3.zhimg.com/v2-87fa58d8ebefb_b.jpg& data-rawwidth=&550& data-rawheight=&347& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic3.zhimg.com/v2-87fa58d8ebefb_r.jpg&&&/figure&&p&最近韩国总统朴槿惠因邪教事件面临下台危机,一时舆论哗然,给人一种韩国药丸的感觉。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f2c26c51_b.jpg& data-rawwidth=&1200& data-rawheight=&801& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&https://pic2.zhimg.com/v2-f2c26c51_r.jpg&&&/figure&&br&&p&加上三星Note7的爆炸事件,互联网铺天盖地都是韩国的大新闻!&/p&&figure&&img src=&https://pic4.zhimg.com/v2-354b4b66a617c5c436d33b_b.png& data-rawwidth=&328& data-rawheight=&372& class=&content_image& width=&328&&&/figure&&br&&p&于是心安理得地,翘起二郎腿,感叹祖国稳定和强大的同时,打开电视机津津有味地观看《釜山行》,恩最近这部电影很火,人人都在聊。&/p&&br&&p&咦,好像有什么不对?&/p&&br&&br&&p&近几年国内很火的综艺节目《爸爸去哪儿》、《奔跑吧兄弟》、《我是歌手》等的节目模式都来源于韩国;&/p&&p&90年代韩剧进入中国后在中国刮起了旋风,并一直刮到现在,从最开始的《蓝色生死恋》、《星梦奇缘》到最近的《太阳的后裔》、《来自星星的你》、《继承者们》,无一不在中国掀起收视狂潮;&/p&&p&走进商场,韩国护肤品牌“innisfree”占着最好的店面,韩国炸鸡店跟肯德基抢客源,屈臣氏的推销小姐们唾沫横飞地跟你介绍来自韩国的化妆品。&/p&&br&&p&哦,好像韩国挺厉害的样子?&/p&&br&&br&&p&抛开韩国开挂一样的娱乐业不说,我们来看看韩国的经济。&/p&&br&&p&70年代的亚洲四小龙,新加坡2015年GDP倒退4%,香港自回归后一直找不到自己的定位,亚洲金融中心的地位被上海威胁,台湾自民进党上台后与大陆交恶,在反服贸运动的刺激下,出口经济受阻。&/p&&p&唯独韩国的数据仍然漂亮!&/p&&br&&p&2015年韩国的GDP 是新加坡的4.7倍,香港的4.4倍。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f01fcea35bdd3_b.png& data-rawwidth=&1246& data-rawheight=&706& class=&origin_image zh-lightbox-thumb& width=&1246& data-original=&https://pic4.zhimg.com/v2-f01fcea35bdd3_r.jpg&&&/figure&&br&&p&生猛的GDP年增长,最近几年开始缓和,不过也保持在3%-5%之间。&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-bed1cbd7bdbb26_b.png& data-rawwidth=&1258& data-rawheight=&637& class=&origin_image zh-lightbox-thumb& width=&1258& data-original=&https://pic3.zhimg.com/v2-bed1cbd7bdbb26_r.jpg&&&/figure&&br&&p&2015年人均GDP全球排行第30位,紧随日本和法国之后&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2d6b46fff14e8b3192be_b.png& data-rawwidth=&561& data-rawheight=&298& class=&origin_image zh-lightbox-thumb& width=&561& data-original=&https://pic3.zhimg.com/v2-2d6b46fff14e8b3192be_r.jpg&&&/figure&&br&&p&曾经的高丽帝国,如今北边尚在闹饥荒&/p&&figure&&img src=&https://pic1.zhimg.com/v2-aaaf7855b4_b.jpg& data-rawwidth=&690& data-rawheight=&459& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&https://pic1.zhimg.com/v2-aaaf7855b4_r.jpg&&&/figure&&br&&p&南边已跳起了 “江南Style”&/p&&figure&&img src=&https://pic4.zhimg.com/v2-deeaaced85de39a89b8b_b.jpg& data-rawwidth=&500& data-rawheight=&334& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic4.zhimg.com/v2-deeaaced85de39a89b8b_r.jpg&&&/figure&&br&&p&与其津津乐道朴槿惠事件,不如看一看韩国是怎么一步步走进发达国家之列的。&/p&&br&&br&&h2&1、与日本建交,发展轻工业&/h2&&p&1948年建国的韩国,在经历了朝鲜战争后已奄奄一息,1961年朴正熙(朴槿惠的父亲)发动政变后到手的韩国,就是一个烂摊子。&/p&&br&&p&人均GDP不足朝鲜的1/3,与当时的中国相当,年产煤量、发电能力、化肥年产量、水泥年产量与粮食产量中仅粮食产量高于朝鲜,其他均远远落后。&/p&&br&&figure&&img src=&https://pic1.zhimg.com/v2-926caa1fa188af58c92b4ebf413d68bc_b.jpg& data-rawwidth=&500& data-rawheight=&358& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic1.zhimg.com/v2-926caa1fa188af58c92b4ebf413d68bc_r.jpg&&&/figure&&br&&p&接手韩国后的朴正熙,做的第一个决定是,&b&与日本建交,发展轻工业&/b&。&/p&&p&日本曾经殖民韩国,当时国内民众普遍对日本充满敌意,朴正熙不顾民众的示威游行,实行戒严,强制推进与日本的谈判。&/p&&p&与日本建交的第一个好处,是3亿美元的二战赔偿金和5亿美元的贷款;&/p&&p&第二个好处,是接收日本的产业转移、技术和管理手段。&/p&&p&除了来自日本的赔款,韩国也从美国和联合国获取无偿经济援助,据统计&a href=&tel:&&&/a&年间,韩国共获得来自美国的援助共达37.8亿美元。&/p&&br&&p&&a href=&tel:&&&/a&年间,韩国学习日本的外向型经济,优先发展以出口为主的轻工业,纺织、服装、鞋类等成为当时的支柱产业。&/p&&br&&p&10年间,韩国的GDP增长从5%,渐渐发展到后期的两位数,并在1970年,人均GDP超过朝鲜。&/p&&br&&p&70年代的首尔已有大城市的气象&/p&&figure&&img src=&https://pic1.zhimg.com/v2-5fbb29f079d460a79c2d2c_b.jpg& data-rawwidth=&700& data-rawheight=&438& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic1.zhimg.com/v2-5fbb29f079d460a79c2d2c_r.jpg&&&/figure&&br&&p&70年代的好莱坞电影已在韩国盛行&/p&&figure&&img src=&https://pic1.zhimg.com/v2-5d28e1d4ad754a36ca7e4_b.jpg& data-rawwidth=&750& data-rawheight=&525& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic1.zhimg.com/v2-5d28e1d4ad754a36ca7e4_r.jpg&&&/figure&&br&&p&70年代的封面女郎,浑然天成&/p&&figure&&img src=&https://pic2.zhimg.com/v2-eb72e5b690b19ae79041_b.jpg& data-rawwidth=&451& data-rawheight=&587& class=&origin_image zh-lightbox-thumb& width=&451& data-original=&https://pic2.zhimg.com/v2-eb72e5b690b19ae79041_r.jpg&&&/figure&&br&&h2&2、高度集权,发展重工业&/h2&&p&70年代初,韩国只有消费型的轻工业,对外出口的东西,除了海产品,就是一些加工流程简单的初级产品,朴正熙清楚地知道,只有发展重工业,才能对技术、产业进行升级,才能生产高附加值的精密器件从而提升国家在市场上的竞争力。&/p&&p&另外发展重工业,也是为了国家安全考虑,因为制造武器需要发达的重工业。&/p&&p&于是大手一挥,举国之力发展重工业。&/p&&p&这段时期有两家公司,对韩国的重工业发展起了巨大的推动作用,一家是最近Note7爆炸的三星,一家是现代集团,当时这两家公司都没有重工业的制造经验和技术,三星当时只会造纸、造糖和纺织,现代是做汽车维修的,好歹跟重工业沾一点边。&/p&&p&1972年,现代成立了现代重工,1974年,三星成立了三星重工,全力开拓重工业,主要是造船。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0effcef1794fca23e558d2_b.png& data-rawwidth=&499& data-rawheight=&273& class=&origin_image zh-lightbox-thumb& width=&499& data-original=&https://pic3.zhimg.com/v2-0effcef1794fca23e558d2_r.jpg&&&/figure&&br&&p&&a href=&tel:&&&/a&年间,仅3000万人口的韩国,硬生生培养了200万产业工人去发展重工业。&/p&&p&流传一个现代集团创始人郑周永空手套白狼的故事,1971年他走遍全球募集资金造船,只有巴克莱银行愿意借钱给他,但要他先拿到一份合同,当时郑周永没有船厂,没有技术,没有工人,于是他找到希腊船王谈,希腊船王说我可以给你一份合同,造两艘25万吨级的超级油轮,郑拿着合同跟巴克莱借了5000万美元,派人去世界各地学习造船技术,2年后两艘船已可以交付使用。&/p&&p&据说郑周永一直有朝鲜情节,左为郑周永&/p&&figure&&img src=&https://pic2.zhimg.com/v2-8c150c0c6e766d2ceeca5_b.jpg& data-rawwidth=&400& data-rawheight=&297& class=&content_image& width=&400&&&/figure&&br&&p&为什么优先发展造船业?&/p&&p&有一个观点是70年代的欧美正在进行产业转移,当时急迫想把船舶制造迁移到亚洲,这对韩国来说是个机遇,同时韩国作为一个外向型经济导向的国家,海上贸易是重中之重,当时韩国有釜山、仁川、蔚山、丽水光阳和平泽唐津五大港口,特别是釜山港,集装箱吞吐量排名世界前5,如果没有自己的造船业,会制约海上贸易的发展。&/p&&p&现在的釜山港&/p&&figure&&img src=&https://pic4.zhimg.com/v2-6de94aba76cfb_b.jpg& data-rawwidth=&600& data-rawheight=&401& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/v2-6de94aba76cfb_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-ccf1b8e92c6f0ecf882bcbdc5a8be5ff_b.jpg& data-rawwidth=&800& data-rawheight=&633& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/v2-ccf1b8e92c6f0ecf882bcbdc5a8be5ff_r.jpg&&&/figure&&p&现在的现代重工&/p&&figure&&img src=&https://pic3.zhimg.com/v2-ac4da4d8a3b58bd3e30c137ab486c2fe_b.png& data-rawwidth=&508& data-rawheight=&570& class=&origin_image zh-lightbox-thumb& width=&508& data-original=&https://pic3.zhimg.com/v2-ac4da4d8a3b58bd3e30c137ab486c2fe_r.jpg&&&/figure&&br&&h2&3、政企改革,发展知识密集型产业&/h2&&p&90年代左右的韩国,重工业已经有非常好的基础,面对当时渐趋全球化的经济,高度集权的政府以及僵化的国企开始成为绊脚石。&/p&&p&改革迫在眉睫!&/p&&p&1987年,韩国电力、国民银行、韩国通信、浦项制铁等优良国企被转为民营企业。&/p&&p&&a href=&tel:&&&/a&年,韩国重工业、韩国通讯、韩国烟草人参公社、大韩输油管公社等八家公司,以及韩国电信、瓦斯公社、地区暖气工程三家公司的部分进行了民营化运作。&br&&/p&&p&2012年起,农协、KTX、产业银行等开始实施民营化。&br&&/p&&p&国企改革,帮助韩国平稳地度过1997年的亚洲金融危机。&/p&&p&改革过程中,国家的行业发展方向也有了转变,逐渐收缩对重工业的投资,转向知识密集型产业,同时将工厂往其他国家和地区转移,比如中国的江苏、山东和东三省。&/p&&p&2003年,韩国影视、音乐、手机及电子游戏4个产业出口额首次超过钢铁,韩流开始席卷亚洲,三星、LG成为消费电子行业的全球知名品牌。&br&&/p&&p&现在的三星&/p&&figure&&img src=&https://pic3.zhimg.com/v2-36eeb09fb42_b.png& data-rawwidth=&508& data-rawheight=&542& class=&origin_image zh-lightbox-thumb& width=&508& data-original=&https://pic3.zhimg.com/v2-36eeb09fb42_r.jpg&&&/figure&&br&&p&重点说一下韩国的影视发展,韩剧能在亚洲刮起旋风,跟政府在背后的支持分不开。早在1998年,政府就设立“电影分级制度”,并确立“文化立国”的方针,提出要成为世界五大文化产业强国之一。&/p&&p&这种政策落到实处第一是加大影视行业的补贴力度,二是促进影视行业的市场化、专业化,专业化一体现在“编剧中心制”的推行,编剧中心制即提高编剧的地位,在韩国,编剧对一部剧的影响力能占到70%-80%;二体现在拍摄“机械化”,分工明细,提高效率。&/p&&p&实际上韩剧不只亚洲人喜欢,南美洲人茶余饭后的谈资,很多时候也是韩剧。韩剧在古巴已取代巴西电视剧成为最受欢迎的外国电视剧,而这也离不开政府的支持,2005年,韩国政府就曾购买《冬季恋歌》《情定大饭店》等韩剧版权,免费向数十家阿拉伯电视台提供播放。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-3af383f525e1ead6e3afe53d7e09a6a2_b.jpg& data-rawwidth=&730& data-rawheight=&456& class=&origin_image zh-lightbox-thumb& width=&730& data-original=&https://pic3.zhimg.com/v2-3af383f525e1ead6e3afe53d7e09a6a2_r.jpg&&&/figure&&br&&p&韩国为什么要花这么大的功夫推广韩剧?&/p&&p&一是拉动旅游业的增长,月,仅一部《冬季恋歌》所带来的日本观光客就达20万人,相关经济收入高达2400亿韩元(约13.7亿元人民币);&/p&&p&二是拉动贸易出口,据统计,韩国文化产业出口每增加100美元,就能使韩国商品出口增加412美元;&/p&&p&三是拉动周边产业发展,一部《来自星星的你》催生了包括奢侈品、APP软件、化妆品、啤酒炸鸡连锁店等几百亿的生意。&/p&&br&&br&&p&实际上这么多年,韩国走过的路,中国也走过或者正在走,比如重工业,中国早在&a href=&tel:&&&/a&年的第一个五年计划就提出要集中力量发展重工业,比如国企改革,比如产业转移(一路一带),而因为种种原因,比如60年代跟苏联的交恶导致了援助的不力,比如70年代的动乱,比如庞大的人口因素等,导致中国建国初期的几十年发展或多或少步履蹒跚,但当蹒跚学步的大象终究学会独舞时,世界将为之震动!&/p&&p&(本文数据主要来源:国家信息中心预测部、南方周末、韩国银行、韩国经济发展简史(作者:海宁)等)&/p&&br&&br&&p&轻点一赞,手有余香,可以给我个赞么 (?o?o?)&/p&&p&更多原创文章请关注专栏 &a href=&https://zhuanlan.zhihu.com/washu& class=&internal&&数据时光机&/a&&/p&
最近韩国总统朴槿惠因邪教事件面临下台危机,一时舆论哗然,给人一种韩国药丸的感觉。 加上三星Note7的爆炸事件,互联网铺天盖地都是韩国的大新闻! 于是心安理得地,翘起二郎腿,感叹祖国稳定和强大的同时,打开电视机津津有味地观看《釜山行》,恩最近这…
&p&通常知乎上面有关于微信公众号的问题,肯定有不少的回答是公众号的二维码,题主问怎么加粉,像上面诸位那样在知乎宣传也是一条方向。&br&&br&还有知乎上面有不少的技巧说明,只确定方向坚持执行下去就可以了。&br&&br&13年初注册知乎的,而我本身在14年左右注册了公众号,搁置了差不多一年时间,然后真正当作兴趣爱好来做的,是14年12月初,当时就自己给自己定位在动漫方面的,当时也每天更新自己写的关于动漫文章,理所当然的没人看,因为没有做什么推广吸引关注,没有什么关注者。&br&&br&所以就在动漫类别的贴吧宣传公众号的二维码,但是我发现这样的效率比较慢。一个星期最多几十个关注。&br&&br&因为以前在百度空间实验过一些推广方式,后来发现做百度知道来推广比较好。&br&&br&所以就转变思路,决定利用之前自己的网站+百度知道来推广。坚持了一个月左右,实际上一个星期就有明显的效果了,因为当时顺便搭上了fate的顺风车,引来了1000个粉丝。&br&&br&当然我这种方式不借时事热点,不考文案的,是不可能有爆发式的增加,而是每天稳定增加的。&br&&br&推广效果如何?5.6今天中午刚截的图&br&&br&&figure&&img src=&https://pic2.zhimg.com/838f69a4e4fdafba85c019_b.jpg& data-rawwidth=&1256& data-rawheight=&491& class=&origin_image zh-lightbox-thumb& width=&1256& data-original=&https://pic2.zhimg.com/838f69a4e4fdafba85c019_r.jpg&&&/figure&&br&&figure&&img src=&https://pic2.zhimg.com/f709caf3e4fbd_b.jpg& data-rawwidth=&901& data-rawheight=&611& class=&origin_image zh-lightbox-thumb& width=&901& data-original=&https://pic2.zhimg.com/f709caf3e4fbd_r.jpg&&&/figure&&br&每天很稳定地100左右的增加,偶尔两三百左右增加。&br&&br&&br&至于那个公众号搜索排行是怎么算法的?我也不知道,不过我习惯每天更新内容,逐渐就长期那个关键词的第一位,而且我那个是个没有认证的订阅号,在我之后至少有10个左右的认证的公众号。&br&&br&所以我猜测是公众号认证+公众号的增长率+活跃数+内容更新周期+阅读率这及方面因素影响排行计算的。&br&&br&当然我这种方式需要持续性去做,不过也是兴趣爱好范围内,习惯了就没有感觉到枯燥之类的。缺点就是内容一般的时候,没有爆发性增长的可能。优点是简单,适合类似我这种比较执着的懒人去做。&br&&br&&b&简单执行到极致就有效果了。&/b&&br&&br&&br&&br&至于我那个公众号就不留二维码了。&br&&br&&br& —————————— ——————————&br&&br&有的发私信问:怎么排版好内容?&br&&br&PS:知乎上面有不少的优秀的关于这方面的回答,而我自己几乎不理排版的问题,只需不那么难看,分段明确就好,除了有时用排版助手一键排版就好了。&br&&figure&&img src=&https://pic3.zhimg.com/2464eac1c7b9ced5a910372edfc4aec2_b.png& data-rawwidth=&1211& data-rawheight=&420& class=&origin_image zh-lightbox-thumb& width=&1211& data-original=&https://pic3.zhimg.com/2464eac1c7b9ced5a910372edfc4aec2_r.jpg&&&/figure&&br&&br&&br& —————————— ——————————&br&&br&&br&最近增长放缓,大概有4个月没有做百度知道,也没有做任何的推广,不过还保持65+左右的净增长,百度知道推广带来的持续效果还没消失。&br&&figure&&img src=&https://pic3.zhimg.com/4c0cba5ccc59210f1aba12b266b6b43e_b.png& data-rawwidth=&1174& data-rawheight=&316& class=&origin_image zh-lightbox-thumb& width=&1174& data-original=&https://pic3.zhimg.com/4c0cba5ccc59210f1aba12b266b6b43e_r.jpg&&&/figure&&br&&br& —————————— ——————————&br&&br&百度知道推广已经有几个月没做了,持续效果不断减弱,但是之前一周内又增加不少关注用户,后来调查发现,是网站的某个半年前发布的内容,不知不觉排在百度搜索某个关键词的第二位。&br&&br&&figure&&img src=&https://pic2.zhimg.com/e161f32dcef5_b.jpg& data-rawwidth=&1190& data-rawheight=&344& class=&origin_image zh-lightbox-thumb& width=&1190& data-original=&https://pic2.zhimg.com/e161f32dcef5_r.jpg&&&/figure&&br&&br&&br& —————————— ——————————&br&&br&&br&又过了几个月了&br&&br&百度知道推广大半年没做了,依靠自己网站做的推广,每天还是保持在100人左右的增加,做推广并不只是用单一的方式,最近几个月开通了今日头条、搜狐自媒体,还有其它渠道进行组合推广。&br&&br&&figure&&img src=&https://pic2.zhimg.com/b220ea41c7779f81bba123da02f6b4fd_b.jpg& data-rawwidth=&1016& data-rawheight=&232& class=&origin_image zh-lightbox-thumb& width=&1016& data-original=&https://pic2.zhimg.com/b220ea41c7779f81bba123da02f6b4fd_r.jpg&&&/figure&&br&&br&虽然今日头条的转化到微信公号基本低到忽略不计,但是对于一些公司团队的品牌宣传还是有一定帮助,最近有幸被某手机浏览器的产品经理找到邀请,我还有和其他公司团队的内容进行PK测试,通过push通知推送,然后依靠内容引流取得加快增长速度。&br&&br&&figure&&img src=&https://pic4.zhimg.com/7c8f6cbdab406fdb32627_b.jpg& data-rawwidth=&1238& data-rawheight=&382& class=&origin_image zh-lightbox-thumb& width=&1238& data-original=&https://pic4.zhimg.com/7c8f6cbdab406fdb32627_r.jpg&&&/figure&&br&&br&&br&留言的问题:&br&&/p&&blockquote&坚持频繁写自己的文字文章,但关注阅读还是几个老读者,该如何拉人推广?&/blockquote&&br&答:虽然你的问题背景没有任何交代,具体情况也不知道,我没法给出什么有用的建议,网上给出的方法多的是,自己去尝试,我也是看百度搜索看别人给出方法做推广,没有什么技术性的,也没有做过什么活动的。总之不要单一依靠一个方式和平台,如果确定哪个方式适合自己,对自己有效,就坚持持续地执行下来吧。&br&&br&&br&大二时候自己个人开始做的公众号,到现在16年差不多毕业该准备找工作了。到现在突破5w了,有三秒时间感觉就像玩游戏打怪升级的快感,之后仿佛等级被人清零,下次突破6w又不知道什么时候了。&br&&br&&br&16年现在公众号越来越趋势公司化团队化作战,加上这年说短视频的风口来了,自己没拥有像papi酱才能,也没有能像那些大神写出爆款文章,总之,自己也只能用闲余的时间去磨。&br&&br&&br&截图纪念下...依旧不留二维码什么的了。&br&&br&&figure&&img src=&https://pic3.zhimg.com/ca13eafafecd52e9e35c69e_b.jpg& data-rawwidth=&1240& data-rawheight=&433& class=&origin_image zh-lightbox-thumb& width=&1240& data-original=&https://pic3.zhimg.com/ca13eafafecd52e9e35c69e_r.jpg&&&/figure&&br&&br&&a href=&https://www.zhihu.com/question//answer/?from=profile_answer_card& class=&internal&&微信公众号如何推广、运营、盈利? - 知乎用户的回答&/a&&br&&br&&br& —————————— ——————————&br&&br&&br&&figure&&img src=&https://pic3.zhimg.com/bac9c84ceae7afaaa05b0fe_b.png& data-rawwidth=&902& data-rawheight=&333& class=&origin_image zh-lightbox-thumb& width=&902& data-original=&https://pic3.zhimg.com/bac9c84ceae7afaaa05b0fe_r.jpg&&&/figure&&br&&br&距离上次回答有1个多月,关注用户从5万到6万花费了一个月时间,这次增长加快了不少,主要得益于接到某手机浏览器的内测邀请,浏览器通知push推广,据我所知接到邀请的公众号有少量,包括一些大号,而我是在垂直领域方面还算较好,才接到邀请。&br&&br&&br&即使多了个渠道推广,每天推送的内容进一步改善,偶然有次展示量达到2000万,阅读量52万,吸引关注2000多用户,不过还是有欠缺的地方。之后经过数次波动,浏览器那边的阅读量或多或少,公众号的增长保持稳定的水平。&br&&br&&br&百度知道推广很久没做了,但是网站部分通过优化的内容在百度排名上,仍然保持领先,每天也能吸引一定量的关注用户。&br&&br&&br&由于操作互联网项目有一定的收益,加上公众号接到广告费用,足够支持走下一步,我也很快毕业了,工作也还没找,考虑到以后时间可能不足够,加上为了公众号在这个领域中内容能多样化,已经招聘几位兼职伙伴帮忙。&br&&br&&br&PS:单是我个人也没想到能成这样,每天都保持更新,过年休假也没停下来,我觉得这是习惯的力量,谈不上坚持。从一无所有走到现在,我唯有可以支付的是时间,还有自己的思考,这也是学生党的我做出来的结果。就像玩养成游戏那样,一个人靠时间积累下来了。&br&&br&&br&&br&下一次编辑这个回答,可能等几个月后再见了。&br&&br&&br&—————————— ——————————&br&&br&&br&&figure&&img src=&https://pic3.zhimg.com/c8c0fe720c7af65253ae_b.png& data-rawwidth=&1232& data-rawheight=&387& class=&origin_image zh-lightbox-thumb& width=&1232& data-original=&https://pic3.zhimg.com/c8c0fe720c7af65253ae_r.jpg&&&/figure&

我要回帖

更多关于 陌生人喊出名字加微信 的文章

 

随机推荐