大家好,最近公司提出新的需求,做一个砸金蛋的活动。用户通过扫码进入小程序,是一个我也玩的界面。如果是通过app分享的链接点进去,是帮砸一下和我要玩二个按钮。二种情况。
分析:首先判断用户怎么进入小程序的。其次判断用户是否下载过APP,如果没有下载去应用市场下载,如果已经下载请点击进入app的按钮,进入app,进入app的这个动作必须是用户触发的,是没有api可以使用的。
小程序前端代码:
在app.js里面获取app分享过来的url,这里要注意的是,第一次进入小程序都会执行onLuanch,后面就不执行了,如果把获取url的逻辑代码放在里面执行,后面获取到的数据永远是你获取到的第一次数据。因此,我把逻辑代码放在onShow里面执行。这样每次获取的数据都是最新的。获取到之后存到全局变量之中。
onShow: function (options) { var that = this; var url = options.query.url; that.globalData.url = options.query.url; },复制代码
在web-view页面,最好把获取url的逻辑代码放入onload里面执行,大家都知道已进入这个页面就会执行onload。我再onload里面做了判断,url为空,在web-view的 src是一个固定的网址,如果是app分享过来的则是app分享的链接。分享的链接必须是https的协议。
onLoad: function (options) { var that = this; var url = getApp().globalData.url; if(url==""||url==undefined){ var date = {} http.httpGet('接口', date, function (res) { success:{ var str2 = res.data.mePlayUrl; that.setData({ webUrl: str2 }) } }) }else{ var str = url that.setData({ webUrl:str, url:url }) } },复制代码
问题:加载html页面非常慢,用户体验不好,大家有什么好的方法以及建议,一起讨论。