进云小程序的设计理念,基本跟H5的保持一直,所以小程序的目录结构尽量跟H5的一样(插件的不用加addons,系统的页面在core文件下;例如:jy_weishop/index/目录,对应的就是H5:addons/jy_weishop/index.php),获取数据,提交数据的方法也是跟H5一样的;进云自动生成的小程序源码包,已经按小程序目录生成好了,一般情况下,不用修改目录,另外也内置了所有的基础系统源码在core文件,还内置了jy_weishop源码包。开发者只需优化自己插件的几个页面就行。
小程序会自动识别进云服务器返回的数据:包括,但不限:错误提示语,成功提示,get数据,POST数据等;
1、首先要先去开发中心-生成小程序源码(最好的插件H5程序已经完善的差不多后,再生成小程序源码,这样生成的小程序源码更完善些);
教程移步:http://s.jinyunweb.com/manage/index.php?p=core&action=article.show&nosession=1&id=388
2、进云机制下:小程序源码解读:
【获取页面数据解读】:
app.access是指当前访问页面的地址,是对象形式:{'plugin':'jy_weishop','action':'index','op':'get'}app.util.get(app.access,function(pagedata){//console.log('index');console.log(pagedata);page.setData({ pluginnav:app.session.menus,//获取的当前小程序插件的底部菜单,必须是标准的,通过插件跟目录下:model/custom_mobile_menu.php文件获取的导航; pagedata:pagedata,//尽量保存在pagedata,因为H5读取的数据也是保存在pagedata。这样小程序html页面改动最小 action:'jy_weishop/index/',//可以知道aciton,如果页面要用到的话});});【页面访问解读】:
下面是一个典型的访问进云页面的写法:
data-func="access" data-params="jy_weishop/goods.detail//id={{item.id}}" bindtap="click"其中:data-params里面填的是进云标准的短地址,可以缩略方式写,缩略规则跟进云路径规则一直;注意:这个地址是跟H5地址一样的,所有小程序的目录也必须按照这个地址来,否则会读取不到小程序源文件。本访问方法:会先读取小程序源文件,如果不存在,就会直接访问H5页面;【页面POST数据方法】
方法一:js方法app.util.post('jy_weishop/index/post/',data,function(res){ consolg.log(res)});方法二:单纯提交 //直接在HTML端写data-func="post" data-params="jy_weishop/member.cart/offeradd/" bindtap="click"注意:data-func的值是post的话 ,就是提交数据,比如上面的加入购物车。小程序会根据服务器后台exi('提交成功')。返回提示【小程序底部导航加载方法】:
<include src=&quot;/pages/_menu.wxml&quot;/> //只需在HTML页面底部加上这句,就会读取当前插件的底部菜单
【小程序获取授权方法】:
<include src=&quot;/pages/_wxauth.wxml&quot;/> //HTML页面下面加入设个授权页面下面是会员页面获取授权示例:onLoad: function (){ var page=this; var ShowAuthM=page.data.ShowAuthM; wx.setNavigationBarTitle({&#39;title&#39;:page.data.pagetitle}); app.util.get(app.access,function(pagedata){ console.log(&#39;member&#39;);console.log(pagedata); if((!pagedata.item.nickname || !pagedata.item.avatar) && !app.isgetUserInfo){ ShowAuthM=!ShowAuthM } page.setData({ pagedata:pagedata, ShowAuthM:ShowAuthM, pluginnav:app.session.menus, action:app.access.plugin+&#39;/&#39;+app.access.action+&#39;/&#39; }); }); }, info_login:function(e){ //根据openid为用户登陆,此处尝试获取用户信息 var the=this; app.util.getUserInfo(e,function(res){ the.onLoad(); }); app.isgetUserInfo=true the.setData({ ShowAuthM:false }) },要注意赋值ShowAuthM的时机,只要ShowAuthM为true,就会弹出授权窗口
【公众号是站点的依赖】:
站点很多地方依赖了公众号,所以必须添加一个公众号,那怕是跟其他站点,重复的也行,比如默认借用系统的;
小程序本身是不依赖公众号的,没用公众号也能正常运行,只是有些H5页面会依赖到。 |