HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

调用官方提供支付宝支付的一个坑

官方文档中,notify_url地址这么写的:urlencode('http://xxx.xxx.xxx/notify.php')

这就一巨大的坑,支付成功了,死活回调不成功。。

直接去掉urlencode函数,写成'http://xxx.xxx.xxx/notify.php ,就解决问题了。。。。坑死我了。。

继续阅读 »

官方文档中,notify_url地址这么写的:urlencode('http://xxx.xxx.xxx/notify.php')

这就一巨大的坑,支付成功了,死活回调不成功。。

直接去掉urlencode函数,写成'http://xxx.xxx.xxx/notify.php ,就解决问题了。。。。坑死我了。。

收起阅读 »

HBuilderX 1.9发布,大幅提升uni-app性能;uni-app/mpvue 插件开发大赛启动,iPhone Xs Max等你来拿!腾讯为uni-app录制视频教程并提供毕业证书

招聘 培训

HBuilderX 1.9发布,大幅提升App平台性能和vue新语法支持

详见https://ask.dcloud.net.cn/article/35818

uni-app/mpvue 插件开发大赛启动

奖品丰富,iPhone MAX 等你来拿,详见http://ask.dcloud.net.cn/article/35700

DCloud 2019新春招聘开启

前端、原生开发、C++/QT开发,都虚位以待。
有志于与DCloud一同打造多端时代基础工具平台的志士,赶紧投简历到hr2013@dcloud.io吧。
详细jd见http://dcloud.io/hr/

传智播客:年薪60万招聘uni-app培训讲师!

http://ask.dcloud.net.cn/article/35616

腾讯课堂自制的uni-app培训教程发布了!

uni-app的火爆引发了腾讯课堂的关注,其自研了uni-app的培训教程,并在腾讯课堂首页重点推广。https://ke.qq.com/course/379043?from=800006382#paysource=1

小编发现这系列课程的质量真心不错,推荐给大家:
1、 从入门到实战,内容完善,讲师水平高
2、 无须再单独学习 vue ,直接看这个课,一站式学习
3、 课程学习完成后,还会拿到腾讯Next学院颁发的证书

还可以在uni-app官网加uni-app的qq群,在群里找“腾讯NEXT课程顾问-lulu”,获取折扣券。
券少,速来!

继续阅读 »

HBuilderX 1.9发布,大幅提升App平台性能和vue新语法支持

详见https://ask.dcloud.net.cn/article/35818

uni-app/mpvue 插件开发大赛启动

奖品丰富,iPhone MAX 等你来拿,详见http://ask.dcloud.net.cn/article/35700

DCloud 2019新春招聘开启

前端、原生开发、C++/QT开发,都虚位以待。
有志于与DCloud一同打造多端时代基础工具平台的志士,赶紧投简历到hr2013@dcloud.io吧。
详细jd见http://dcloud.io/hr/

传智播客:年薪60万招聘uni-app培训讲师!

http://ask.dcloud.net.cn/article/35616

腾讯课堂自制的uni-app培训教程发布了!

uni-app的火爆引发了腾讯课堂的关注,其自研了uni-app的培训教程,并在腾讯课堂首页重点推广。https://ke.qq.com/course/379043?from=800006382#paysource=1

小编发现这系列课程的质量真心不错,推荐给大家:
1、 从入门到实战,内容完善,讲师水平高
2、 无须再单独学习 vue ,直接看这个课,一站式学习
3、 课程学习完成后,还会拿到腾讯Next学院颁发的证书

还可以在uni-app官网加uni-app的qq群,在群里找“腾讯NEXT课程顾问-lulu”,获取折扣券。
券少,速来!

收起阅读 »

苹果内购 的经验分享

IAP

我这里说下我对苹果内购的理解,理解不正确,多指教。
对于我这种不懂苹果开发的程序员来说,用uni-app开发一个苹果APP,难点卡在了苹果内购,微信支付宝支付都是先下单,再付款,修改订单状态

而苹果内购有点不同,他的流程是先付款,再服务器二次验证,验证成功写入自己的数据库。

找了很多资料,后来hbuilder里的一个工作人员告诉我文档里有部分苹果内购代码,我试了下,可以跑起来。可是案例里uni.requestPayment()返回的只有状态,没有校验数据。就再次的看文档,5+文档。结合2个文档,后来通过5+实现了苹果内购,为了让其他的开放人员少走坑,这里把我测试成功的例子发布下。

<view>  
    <view class="uni-list">  
        <radio-group @change="applePriceChange">  
            <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in priceList" :key="index">  
                {{item.text}}  
                <radio :value="item.value" :checked="item.checked" />  
            </label>  
        </radio-group>  
    </view>  
    <view class="uni-padding-wrap">  
        <button class="ipaPayBtn" @click="requestPayment" :loading="loading" :disabled="disabled">确认支付</button>  
    </view>  
</view>  
</view>  

let iapChannel = null,
productId = 'chongzhi_2019_1_14_168',
productIds = ['chongzhi_2019_1_14_168', 'chongzhi_2019_1_14_288','chongzhi_2019_1_14_588','chongzhi_2019_1_14_898'];
export default {
data() {
return {
loading: false,
disabled: true,
priceList: [{
value: 'chongzhi_2019_1_14_168',
text: '支付1元',
checked: true
}, {
value: 'chongzhi_2019_1_14_288',
text: '支付2元',
checked: false
},{
value: 'chongzhi_2019_1_14_588',
text: '支付3元',
checked: false
}, {
value: 'chongzhi_2019_1_14_898',
text: '支付4元',
checked: false
}]
}
},
onLoad: function() {
// 扩展API加载完毕,现在可以正常调用扩展API
var that = this;
plus.payment.getChannels(function(channels){
console.log(JSON.stringify(channels) );
for (var i in channels) {
var channel = channels[i];
if (channel.id === 'appleiap') {
iapChannel = channel;
//获取服务器产品
that.requestOrder();
}
}
if(!iapChannel){
console.log("不支持苹果内购");
}
}, false);
},
methods: {
//获取服务器产品
requestOrder() {
var that = this;
uni.showLoading({
title:'检测支付环境...'
});
iapChannel.requestOrder(productIds, (orderList) => { //必须调用此方法才能进行 iap 支付
that.disabled = false;
uni.hideLoading();
console.log('requestOrder success: ' + JSON.stringify(orderList));
}, (e) => {
that.disabled = false;
uni.hideLoading();
console.log('requestOrder failed: ' + JSON.stringify(e));
});
},
//点击支付
requestPayment(event) {
var that = this;
that.loading = true;
var statement = {
productid: productId
}
plus.payment.request(iapChannel, statement, function(e){
that.loading = false;
//这里的e包括了验证数据,可以发送到服务器端进行验证
console.log(JSON.stringify(e));
}, function(){
that.loading = false;
console.log("支付失败")
});
},
applePriceChange(e) {
productId = e.detail.value;
}
}
}

继续阅读 »

我这里说下我对苹果内购的理解,理解不正确,多指教。
对于我这种不懂苹果开发的程序员来说,用uni-app开发一个苹果APP,难点卡在了苹果内购,微信支付宝支付都是先下单,再付款,修改订单状态

而苹果内购有点不同,他的流程是先付款,再服务器二次验证,验证成功写入自己的数据库。

找了很多资料,后来hbuilder里的一个工作人员告诉我文档里有部分苹果内购代码,我试了下,可以跑起来。可是案例里uni.requestPayment()返回的只有状态,没有校验数据。就再次的看文档,5+文档。结合2个文档,后来通过5+实现了苹果内购,为了让其他的开放人员少走坑,这里把我测试成功的例子发布下。

<view>  
    <view class="uni-list">  
        <radio-group @change="applePriceChange">  
            <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in priceList" :key="index">  
                {{item.text}}  
                <radio :value="item.value" :checked="item.checked" />  
            </label>  
        </radio-group>  
    </view>  
    <view class="uni-padding-wrap">  
        <button class="ipaPayBtn" @click="requestPayment" :loading="loading" :disabled="disabled">确认支付</button>  
    </view>  
</view>  
</view>  

let iapChannel = null,
productId = 'chongzhi_2019_1_14_168',
productIds = ['chongzhi_2019_1_14_168', 'chongzhi_2019_1_14_288','chongzhi_2019_1_14_588','chongzhi_2019_1_14_898'];
export default {
data() {
return {
loading: false,
disabled: true,
priceList: [{
value: 'chongzhi_2019_1_14_168',
text: '支付1元',
checked: true
}, {
value: 'chongzhi_2019_1_14_288',
text: '支付2元',
checked: false
},{
value: 'chongzhi_2019_1_14_588',
text: '支付3元',
checked: false
}, {
value: 'chongzhi_2019_1_14_898',
text: '支付4元',
checked: false
}]
}
},
onLoad: function() {
// 扩展API加载完毕,现在可以正常调用扩展API
var that = this;
plus.payment.getChannels(function(channels){
console.log(JSON.stringify(channels) );
for (var i in channels) {
var channel = channels[i];
if (channel.id === 'appleiap') {
iapChannel = channel;
//获取服务器产品
that.requestOrder();
}
}
if(!iapChannel){
console.log("不支持苹果内购");
}
}, false);
},
methods: {
//获取服务器产品
requestOrder() {
var that = this;
uni.showLoading({
title:'检测支付环境...'
});
iapChannel.requestOrder(productIds, (orderList) => { //必须调用此方法才能进行 iap 支付
that.disabled = false;
uni.hideLoading();
console.log('requestOrder success: ' + JSON.stringify(orderList));
}, (e) => {
that.disabled = false;
uni.hideLoading();
console.log('requestOrder failed: ' + JSON.stringify(e));
});
},
//点击支付
requestPayment(event) {
var that = this;
that.loading = true;
var statement = {
productid: productId
}
plus.payment.request(iapChannel, statement, function(e){
that.loading = false;
//这里的e包括了验证数据,可以发送到服务器端进行验证
console.log(JSON.stringify(e));
}, function(){
that.loading = false;
console.log("支付失败")
});
},
applePriceChange(e) {
productId = e.detail.value;
}
}
}

收起阅读 »

分享获取ios应用图标角标数量,修改并发送至个推服务器

Native.JS iOS 个推

ios离线推送消息是apns发送控制应用图标数量+1,点击消息后应用上的数字消失,实际上并没有-1,以下方法可实现。

plus.push.addEventListener( "click", function( msg ) {  
    //导入ios UIApplication  
    var UIApplication = plus.ios.import("UIApplication");  
    var app = UIApplication.sharedApplication();  
    //获取应用图标的数量  
    var oldNum = app.applicationIconBadgeNumber();  
    var newNum = oldNum - 1;  
    //设置应用图标的数量  
    plus.runtime.setBadgeNumber(newNum);  
    //导入个推原生类  
    var GeTuiSdk = plus.ios.importClass('GeTuiSdk');  
    GeTuiSdk.setBadge(newNum);  
});  
继续阅读 »

ios离线推送消息是apns发送控制应用图标数量+1,点击消息后应用上的数字消失,实际上并没有-1,以下方法可实现。

plus.push.addEventListener( "click", function( msg ) {  
    //导入ios UIApplication  
    var UIApplication = plus.ios.import("UIApplication");  
    var app = UIApplication.sharedApplication();  
    //获取应用图标的数量  
    var oldNum = app.applicationIconBadgeNumber();  
    var newNum = oldNum - 1;  
    //设置应用图标的数量  
    plus.runtime.setBadgeNumber(newNum);  
    //导入个推原生类  
    var GeTuiSdk = plus.ios.importClass('GeTuiSdk');  
    GeTuiSdk.setBadge(newNum);  
});  
收起阅读 »

郑州在线购票app,制作报价是多少钱呢

5 App开发

  在线购票app开发是否值得投资呢,这个问题找郑州app外包公司可以解决,而且在郑州app制作看来,随着智能手机和平板电脑的普及,app已融入到我们的日常生活当中。一项最新数据显示,目前国内手机族每天花在app和网络的时间比例上升到81%,下载到手机上的app数量从32上升到41。作为指尖上的消费,app改变着我们的生活方式。所以在线购票app开发是有发展前景的。

  那么在线购票app开发行业解决方案都要有哪些功能呢?下面就为大家讲解下一款手机在线购票app应用的功能需求:

  在线购票、预定服务

  在线购票功能能够提供用户通过在线进行选购电影票,并且进行选择电影场次、选择观影座位等。同时也能够通过在线进行预定其他服务,根据商家的服务内容为其提供产品服务的展示位。

  互动圈子

  用户可以通过登录会员账号,就能够参与影院圈子的互动,对电影进行点评等,营造良好的平台互动氛围。

  数据统计

  在数据统计中,对会员的消费内容进行统计,并且对个人消费数据分析,为营销人员提供运营的科学数据支持,帮助影院app开发平台实现精准化营销。

  会员积分

  通过商家制定的赢取积分的制度,会员能够通过消费或者参与活动获得积分,并且可以通过积分商城进行换购产品,能够有效提高app的粘性。

  分类排序

  那么多的电影类型,细分开来才是为了用户考虑。

  各大主流票务平台的价格一目了然,不用你一个一个应用逐个打开,便能够一眼看出该选择在哪一家购买。一款软件搞定所有票务平台的购票问题,而且一定能够帮你最快找出最低价。真正实现哪里便宜买哪里!
本文由专业的郑州app外包公司燚轩科技整理发布。

继续阅读 »

  在线购票app开发是否值得投资呢,这个问题找郑州app外包公司可以解决,而且在郑州app制作看来,随着智能手机和平板电脑的普及,app已融入到我们的日常生活当中。一项最新数据显示,目前国内手机族每天花在app和网络的时间比例上升到81%,下载到手机上的app数量从32上升到41。作为指尖上的消费,app改变着我们的生活方式。所以在线购票app开发是有发展前景的。

  那么在线购票app开发行业解决方案都要有哪些功能呢?下面就为大家讲解下一款手机在线购票app应用的功能需求:

  在线购票、预定服务

  在线购票功能能够提供用户通过在线进行选购电影票,并且进行选择电影场次、选择观影座位等。同时也能够通过在线进行预定其他服务,根据商家的服务内容为其提供产品服务的展示位。

  互动圈子

  用户可以通过登录会员账号,就能够参与影院圈子的互动,对电影进行点评等,营造良好的平台互动氛围。

  数据统计

  在数据统计中,对会员的消费内容进行统计,并且对个人消费数据分析,为营销人员提供运营的科学数据支持,帮助影院app开发平台实现精准化营销。

  会员积分

  通过商家制定的赢取积分的制度,会员能够通过消费或者参与活动获得积分,并且可以通过积分商城进行换购产品,能够有效提高app的粘性。

  分类排序

  那么多的电影类型,细分开来才是为了用户考虑。

  各大主流票务平台的价格一目了然,不用你一个一个应用逐个打开,便能够一眼看出该选择在哪一家购买。一款软件搞定所有票务平台的购票问题,而且一定能够帮你最快找出最低价。真正实现哪里便宜买哪里!
本文由专业的郑州app外包公司燚轩科技整理发布。

收起阅读 »

找长沙开发者开发混合APP

外包 移动APP

找长沙开发者开发混合APP,要求Hbuildx,mui;微信:13802520106

找长沙开发者开发混合APP,要求Hbuildx,mui;微信:13802520106

农家乐预订小程序开发_餐饮行业小程序开发- 深圳素与简科技

小程序

近几年农家乐市场如火如荼,各地的农家乐办的有声有色,进出的游客络绎不绝,那对于一个传统行业来说如何通过小程序打通线上线下平台呢?定制一款农家乐预订小程序需要哪些功能呢?餐饮行业点餐系统方案

农家乐小程序核心功能:

1、农庄动态:对农庄的情况做一个介绍,让顾客快速了解农庄概况。

2、农庄相册:发布农庄实景图供顾客查看,让顾客能更加快速更加直观的了解并选择自己喜欢的农庄。

3、住宿介绍:住宿房间分类,条件介绍,顾客可以直接在小程序上直接预订。

4、套餐游玩:游玩项目套餐集合,针对套餐内容有详细图文介绍。

5、优惠券:商家可以设置优惠券。顾客可以在小程序端领取、使用。

5、房间预订:预订房间数、入住人数、姓名、电话、房间保留时间等。

6、房间详情:房间设施、条件详细介绍。

农家乐小程序模块介绍:

农家乐平台支持农庄介绍、饮食、套餐、住宿介绍,同时支持旅行套餐预约、住宿预约,为旅游行业、农家乐市场开拓线上营销。

1、房间列表:包含房间服务、配置、设施等信息;

2、农家详情:包含农家图片、位置、预订、房间详情等信息;

3、预订功能:客户可根据时间、房间类型、价格进行预订;

4、轮播图:可宣传、展示农家乐。

小程序开发推荐深圳素与简科技有限公司(http://www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

继续阅读 »

近几年农家乐市场如火如荼,各地的农家乐办的有声有色,进出的游客络绎不绝,那对于一个传统行业来说如何通过小程序打通线上线下平台呢?定制一款农家乐预订小程序需要哪些功能呢?餐饮行业点餐系统方案

农家乐小程序核心功能:

1、农庄动态:对农庄的情况做一个介绍,让顾客快速了解农庄概况。

2、农庄相册:发布农庄实景图供顾客查看,让顾客能更加快速更加直观的了解并选择自己喜欢的农庄。

3、住宿介绍:住宿房间分类,条件介绍,顾客可以直接在小程序上直接预订。

4、套餐游玩:游玩项目套餐集合,针对套餐内容有详细图文介绍。

5、优惠券:商家可以设置优惠券。顾客可以在小程序端领取、使用。

5、房间预订:预订房间数、入住人数、姓名、电话、房间保留时间等。

6、房间详情:房间设施、条件详细介绍。

农家乐小程序模块介绍:

农家乐平台支持农庄介绍、饮食、套餐、住宿介绍,同时支持旅行套餐预约、住宿预约,为旅游行业、农家乐市场开拓线上营销。

1、房间列表:包含房间服务、配置、设施等信息;

2、农家详情:包含农家图片、位置、预订、房间详情等信息;

3、预订功能:客户可根据时间、房间类型、价格进行预订;

4、轮播图:可宣传、展示农家乐。

小程序开发推荐深圳素与简科技有限公司(http://www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

收起阅读 »

【素与简科技】家政服务小程序开发

小程序

当下各行各业都已步入互联网行业,那对于传统的家政服务业来说应该用哪种方式来插入呢?以我来看,其实制作一款小程序是一个较为稳妥的选择

开发家政服务小程序的优势在于:

1、服务分类多样化,有利于进行细分营销

2、一店变多店,实现多样化经营

3、线上实时接单,方便店家,方便客户

家政服务小程序开发:

1、利用会员积分制,例如消费50元可以积1分,达到20分可以赠送一次服务。这样操作不仅可以增加用户粘性,同时也可以掌握用户数据,并且分析用户数据,从而得出一个精准的用户画像。为以后提供更好的服务做准备。

2、利用线上庞大的用户基数再配合线下的优质服务和营销手段进行配合可以达到客户高质量的转化,稳定客源。通过线上线下相辅相成让生意更好做。

3、有了这样一个小程序可以让阿姨的空余时间进行更加充分的利用,雇主也可以更快更方便地找到阿姨。

4、通过定位功能,可以向雇主推荐周围的阿姨,提高成单效率。

通过定位功能可以向雇主推荐周围的阿姨,提高成单效率,随着通过定位功能可以向雇主推荐周围的阿姨提高成单效率。通过定位功能可以向雇主推荐周围的阿姨,提高成单效率  

推荐:生鲜水果店+门店小程序解决方案

小程序开发推荐深圳素与简科技有限公司(http://www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

继续阅读 »

当下各行各业都已步入互联网行业,那对于传统的家政服务业来说应该用哪种方式来插入呢?以我来看,其实制作一款小程序是一个较为稳妥的选择

开发家政服务小程序的优势在于:

1、服务分类多样化,有利于进行细分营销

2、一店变多店,实现多样化经营

3、线上实时接单,方便店家,方便客户

家政服务小程序开发:

1、利用会员积分制,例如消费50元可以积1分,达到20分可以赠送一次服务。这样操作不仅可以增加用户粘性,同时也可以掌握用户数据,并且分析用户数据,从而得出一个精准的用户画像。为以后提供更好的服务做准备。

2、利用线上庞大的用户基数再配合线下的优质服务和营销手段进行配合可以达到客户高质量的转化,稳定客源。通过线上线下相辅相成让生意更好做。

3、有了这样一个小程序可以让阿姨的空余时间进行更加充分的利用,雇主也可以更快更方便地找到阿姨。

4、通过定位功能,可以向雇主推荐周围的阿姨,提高成单效率。

通过定位功能可以向雇主推荐周围的阿姨,提高成单效率,随着通过定位功能可以向雇主推荐周围的阿姨提高成单效率。通过定位功能可以向雇主推荐周围的阿姨,提高成单效率  

推荐:生鲜水果店+门店小程序解决方案

小程序开发推荐深圳素与简科技有限公司(http://www.suyujane.com)多年软件开发经验,海量的开发案例可供参考,看得见的开发经验,让客户更加的省心省力。技术团队都是10年开发工程师,完善的售后服务体系,保障项目开发顺利进行。

收起阅读 »

youbug

IAP

youbug

youbug

郑州小程序代理,值不值得投资呢

微信小程序 小程序

  找郑州小程序开发或郑州小程序制作好呢?还是做小程序代理创业好呢?小程序上线以来,如今已经成为当下最火热创业风口,无论是小程序开发者,还是创业者,都想进入小程序领域,抢占一杯羹。而小程序也衍生出周边不少创业项目,例如小程序代理、小程序第三方开发平台等。对于没有开发技术的创业者来说,小程序代理到底好不好呢?下面就从几个方面跟大家来分析一下。

  1、抢风口

  除了微信小程序外,各种各样的小程序都有,互联网出现这么多小程序项目,必然是大势所趋。这些经验都告诉我们,站在风口上,就能开启捡钱的模式。

  2、小程序成实体店救命稻草

  众所周知,随着电商的不断发展,导致实体店处境困难。然而小程序的出现,简直是实体店得救命稻草。据不完全统计,前期开通附近小程序功能的实体店,一天能有30-50个浏览量,而且,这些客户都是实体店附近5公里的,随时可以到店。这些店老板做了小程序之后,发现的确有效,于是更多的实体店纷纷开通小程序,通过小程序各个入口引来大量流量。

  3、名字唯一性

  小程序名字具有唯一性,此前有一个小程序被一家中介出价18万收购,和域名一样。好的小程序名字方便用户搜索并发现。

  4、未来广告价值

  当代理商以门店+平台的方式进行的,代理商拓展的门店小程序,都会汇总到代理商的平台上面,等平台上面的商家积累到一定的程度,就有人在他们平台打广告了,

  一家实体店出现附近的小程序里面一次,如果这家店是通过你做的小程序,小程序上面有banner置顶的广告位,这些都可与实体店老板合作共同。如果你抢占的实体店越多,未来能够赚取的广告费就越多。

继续阅读 »

  找郑州小程序开发或郑州小程序制作好呢?还是做小程序代理创业好呢?小程序上线以来,如今已经成为当下最火热创业风口,无论是小程序开发者,还是创业者,都想进入小程序领域,抢占一杯羹。而小程序也衍生出周边不少创业项目,例如小程序代理、小程序第三方开发平台等。对于没有开发技术的创业者来说,小程序代理到底好不好呢?下面就从几个方面跟大家来分析一下。

  1、抢风口

  除了微信小程序外,各种各样的小程序都有,互联网出现这么多小程序项目,必然是大势所趋。这些经验都告诉我们,站在风口上,就能开启捡钱的模式。

  2、小程序成实体店救命稻草

  众所周知,随着电商的不断发展,导致实体店处境困难。然而小程序的出现,简直是实体店得救命稻草。据不完全统计,前期开通附近小程序功能的实体店,一天能有30-50个浏览量,而且,这些客户都是实体店附近5公里的,随时可以到店。这些店老板做了小程序之后,发现的确有效,于是更多的实体店纷纷开通小程序,通过小程序各个入口引来大量流量。

  3、名字唯一性

  小程序名字具有唯一性,此前有一个小程序被一家中介出价18万收购,和域名一样。好的小程序名字方便用户搜索并发现。

  4、未来广告价值

  当代理商以门店+平台的方式进行的,代理商拓展的门店小程序,都会汇总到代理商的平台上面,等平台上面的商家积累到一定的程度,就有人在他们平台打广告了,

  一家实体店出现附近的小程序里面一次,如果这家店是通过你做的小程序,小程序上面有banner置顶的广告位,这些都可与实体店老板合作共同。如果你抢占的实体店越多,未来能够赚取的广告费就越多。

收起阅读 »

uni-app 启动界面(splash)参数配置说明 | 启动慢的原因

白屏 启动慢 启动速度

此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-splashscreen

HBuilderX 1.6.0 版本之后,新增是否等待首页渲染完毕后再关闭启动界面(splash)的配置,App引擎会自动检测首页渲染,若未渲染则不关闭splash,避免显示白屏,提升用户体验。

可在manifest.json文件中进行配置,支持以下三种关闭启动界面(splash)策略:

  • 首页渲染完毕后自动关闭启动界面
  • 首页加载完成后自动关闭启动界面
  • 代码控制关闭启动界面

首页渲染完毕后自动关闭启动界面

打开项目的manifest.json文件,在“App启动界面配置”中的“启动界面选项”下勾选“等待首页渲染完毕后再关闭Splash图”:

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置 alwaysShowBeforeRender 属性值为 true

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : true  
        }  
        //...  
    }

提示:

  • App启动时,App引擎自动检测首页渲染情况,若首页未渲染(白屏),则不关闭splash;检测到首页渲染完成则关闭splash;
  • 若启动时间超过10秒,则不管首页是否白屏,都会自动关闭splash

首页加载完成后自动关闭启动界面

打开项目的manifest.json文件,在“App启动界面配置”中的“启动界面选项”下去掉勾选“等待首页渲染完毕后再关闭Splash图”:

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置 alwaysShowBeforeRender 属性值为 false

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : false  
        }  
        //...  
    }

提示:
首页加载完成后关闭启动界面,此时首页可能没有完成渲染,在部分设备可能会闪一下白屏(不推荐)

代码控制关闭启动界面

启动界面不会自动关闭,需要开发者在代码中调用plus.navigator.closeSplashscreen()关闭启动界面。
需在“源码视图”中同时设置 alwaysShowBeforeRender 和 autoClose 属性值为 false

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置如下:

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : false,  
            "autoclose": false  
        }  
        //...  
    }

提示:
不会自动关闭启动界面,需开发者根据业务逻辑在合适的时机调用 plus.navigator.closeSplashscreen() 关闭启动界面

另,如果uni-app不是v3编译器,请升级为v3,可以大幅提升启动速度:https://ask.dcloud.net.cn/article/36599

继续阅读 »

此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-splashscreen

HBuilderX 1.6.0 版本之后,新增是否等待首页渲染完毕后再关闭启动界面(splash)的配置,App引擎会自动检测首页渲染,若未渲染则不关闭splash,避免显示白屏,提升用户体验。

可在manifest.json文件中进行配置,支持以下三种关闭启动界面(splash)策略:

  • 首页渲染完毕后自动关闭启动界面
  • 首页加载完成后自动关闭启动界面
  • 代码控制关闭启动界面

首页渲染完毕后自动关闭启动界面

打开项目的manifest.json文件,在“App启动界面配置”中的“启动界面选项”下勾选“等待首页渲染完毕后再关闭Splash图”:

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置 alwaysShowBeforeRender 属性值为 true

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : true  
        }  
        //...  
    }

提示:

  • App启动时,App引擎自动检测首页渲染情况,若首页未渲染(白屏),则不关闭splash;检测到首页渲染完成则关闭splash;
  • 若启动时间超过10秒,则不管首页是否白屏,都会自动关闭splash

首页加载完成后自动关闭启动界面

打开项目的manifest.json文件,在“App启动界面配置”中的“启动界面选项”下去掉勾选“等待首页渲染完毕后再关闭Splash图”:

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置 alwaysShowBeforeRender 属性值为 false

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : false  
        }  
        //...  
    }

提示:
首页加载完成后关闭启动界面,此时首页可能没有完成渲染,在部分设备可能会闪一下白屏(不推荐)

代码控制关闭启动界面

启动界面不会自动关闭,需要开发者在代码中调用plus.navigator.closeSplashscreen()关闭启动界面。
需在“源码视图”中同时设置 alwaysShowBeforeRender 和 autoClose 属性值为 false

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置如下:

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : false,  
            "autoclose": false  
        }  
        //...  
    }

提示:
不会自动关闭启动界面,需开发者根据业务逻辑在合适的时机调用 plus.navigator.closeSplashscreen() 关闭启动界面

另,如果uni-app不是v3编译器,请升级为v3,可以大幅提升启动速度:https://ask.dcloud.net.cn/article/36599

收起阅读 »

uni-app 全面屏、刘海屏适配(iphoneX适配)及安全区设置

安全区 iphonex uniapp 全屏幕

方案一:使用原生占位(仅App端支持)

manifest.json 文件 app-plus 节点下配下 safearea

"safearea": {  
    "background": "#CCCCCC",  
    "bottom": {  
        "offset": "auto"  
    }  
}

方案二:不使用原生占位(非App端可以不配置manifest)

manifest.json 文件 app-plus 节点下配下 safearea

"safearea": {  
    "bottom": {  
        "offset": "none"  
    }  
}

然后在需要适配的页面内使用 css 常量 constant(safe-area-inset-bottom)、env(safe-area-inset-bottom) 来适配,参考:为iPhoneX设计网站。微信小程序模拟器不支持,以真机为准。

比如为列表底部添加内边距避开安全区,在 iPhoneX 上列表底部会有内边距,在其他设备上没有内边距:

<style>  
.list {  
  padding-bottom: 0;  
  padding-bottom: constant(safe-area-inset-bottom);  
  padding-bottom: env(safe-area-inset-bottom);  
}  
</style>

nvue 页面不支持 css 常量,可以使用 uni.getSystemInfo 获取 safeAreaInsets 动态设置到 style 属性。

注意:使用了pages.json里的原生tabbar,不管manifest里安全区设置如何,在tabbar下方都会留出空隙。

判断是否为刘海屏的方法

使用5+ API (plus.navigator.hasNotchInScreen)可查询当前设备是否为刘海屏。
详情参考:https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.hasNotchInScreen

安卓底部虚拟按键背景色修改方式

使用Native.js修改:

var Color = plus.android.importClass("android.graphics.Color");    
    plus.android.importClass("android.view.Window");    
    var mainActivity = plus.android.runtimeMainActivity();    
    var window_android = mainActivity.getWindow();    
    window_android.setNavigationBarColor(Color.GREEN);  
继续阅读 »

方案一:使用原生占位(仅App端支持)

manifest.json 文件 app-plus 节点下配下 safearea

"safearea": {  
    "background": "#CCCCCC",  
    "bottom": {  
        "offset": "auto"  
    }  
}

方案二:不使用原生占位(非App端可以不配置manifest)

manifest.json 文件 app-plus 节点下配下 safearea

"safearea": {  
    "bottom": {  
        "offset": "none"  
    }  
}

然后在需要适配的页面内使用 css 常量 constant(safe-area-inset-bottom)、env(safe-area-inset-bottom) 来适配,参考:为iPhoneX设计网站。微信小程序模拟器不支持,以真机为准。

比如为列表底部添加内边距避开安全区,在 iPhoneX 上列表底部会有内边距,在其他设备上没有内边距:

<style>  
.list {  
  padding-bottom: 0;  
  padding-bottom: constant(safe-area-inset-bottom);  
  padding-bottom: env(safe-area-inset-bottom);  
}  
</style>

nvue 页面不支持 css 常量,可以使用 uni.getSystemInfo 获取 safeAreaInsets 动态设置到 style 属性。

注意:使用了pages.json里的原生tabbar,不管manifest里安全区设置如何,在tabbar下方都会留出空隙。

判断是否为刘海屏的方法

使用5+ API (plus.navigator.hasNotchInScreen)可查询当前设备是否为刘海屏。
详情参考:https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.hasNotchInScreen

安卓底部虚拟按键背景色修改方式

使用Native.js修改:

var Color = plus.android.importClass("android.graphics.Color");    
    plus.android.importClass("android.view.Window");    
    var mainActivity = plus.android.runtimeMainActivity();    
    var window_android = mainActivity.getWindow();    
    window_android.setNavigationBarColor(Color.GREEN);  
收起阅读 »