HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

网约车APP定制开发系统搭建

App

1、地址位置定位功能
一般需要打车服务的人通常都会先了解当前所在的位置,以及目的地的位置,这样才能够了解到到达目的地的具体时间,避免错过一些关键的会议或者是展会等等,网约车APP开发实现了位置的实时定位,让用户快速了解具体位置并进行智能定位功能。
2、具体价格时长展示
用户通过定位之后,可以在网约车APP软件上了解当前路程所需要花费的时间以及所需要支付的金额等等信息,这些透明化的价格服务展示能够方便用户做出判断,确定该路程的使用打车服务的性价比是否合乎自身需求。
3、在线预约功能
网约车APP软件会为用户提供便捷的线上预约服务,预约的车辆型号有多种类型,例如顺风车、专车以及快车等等都会为用户展示出来,让用户可以自由进行关于打车服务的选择预约。
4、打车平台流程管理功能
对于打车平台来说,网约车APP开发能够帮助平台实现多个打车流程的管理,例如订单方面以及出租车接单匹配等等方面,有效提供平台整体的运营效率。

继续阅读 »

1、地址位置定位功能
一般需要打车服务的人通常都会先了解当前所在的位置,以及目的地的位置,这样才能够了解到到达目的地的具体时间,避免错过一些关键的会议或者是展会等等,网约车APP开发实现了位置的实时定位,让用户快速了解具体位置并进行智能定位功能。
2、具体价格时长展示
用户通过定位之后,可以在网约车APP软件上了解当前路程所需要花费的时间以及所需要支付的金额等等信息,这些透明化的价格服务展示能够方便用户做出判断,确定该路程的使用打车服务的性价比是否合乎自身需求。
3、在线预约功能
网约车APP软件会为用户提供便捷的线上预约服务,预约的车辆型号有多种类型,例如顺风车、专车以及快车等等都会为用户展示出来,让用户可以自由进行关于打车服务的选择预约。
4、打车平台流程管理功能
对于打车平台来说,网约车APP开发能够帮助平台实现多个打车流程的管理,例如订单方面以及出租车接单匹配等等方面,有效提供平台整体的运营效率。

收起阅读 »

【南京】招聘uniapp 开发工程师2年以上工作经验薪资13-18k 非外包!

招聘

【急聘】办公地址:南京栖霞区紫东国际创业园C15栋
双休,不加班!
招聘熟练使用uniapp的工程师,负责app、小程序开发。
学历不限,只看能力!

有兴趣的联系
微信:huasheng600
手机号:13167185077

【急聘】办公地址:南京栖霞区紫东国际创业园C15栋
双休,不加班!
招聘熟练使用uniapp的工程师,负责app、小程序开发。
学历不限,只看能力!

有兴趣的联系
微信:huasheng600
手机号:13167185077

滴滴打车网约车平台定制开发

源码

近年来,在一线城市中出现了打车难的问题,打车APP开发给市场提供了良好的市场发展前景,我们只做高端定制APP,那么常见打车APP主要有哪些功能呢?
  空车列表
  打车APP LBS定位功能为车主、用户定位所在位置,在用户产生达成需求的时候,能够通过设定搜索范围,空车列表会为用户定位显示附近的空车内容,其中包括空车的车牌、司机联系方式、当前位置等。
  打车预约
  用户能够通过在线呼叫电召中心进行预约司机服务,在预约界面中,为用户定位所在位置的定制,电召中心能够为司机标出准确的位置信息。
  设置
  用户可以设置系统的刷新时间与搜索半径,考虑到的士行驶的速度与接通电话所花费的时间,因此推荐将搜索半径设置成500米。
  地图
  打车APP定制开发能够实现调用第三方的地图功能,为用户直观显示出用户与空车之间的位置关系,以及的士行驶的方向等信息,并且帮助司机制定达到用户制定位置的路线,使得位置定位更加准确。

继续阅读 »

近年来,在一线城市中出现了打车难的问题,打车APP开发给市场提供了良好的市场发展前景,我们只做高端定制APP,那么常见打车APP主要有哪些功能呢?
  空车列表
  打车APP LBS定位功能为车主、用户定位所在位置,在用户产生达成需求的时候,能够通过设定搜索范围,空车列表会为用户定位显示附近的空车内容,其中包括空车的车牌、司机联系方式、当前位置等。
  打车预约
  用户能够通过在线呼叫电召中心进行预约司机服务,在预约界面中,为用户定位所在位置的定制,电召中心能够为司机标出准确的位置信息。
  设置
  用户可以设置系统的刷新时间与搜索半径,考虑到的士行驶的速度与接通电话所花费的时间,因此推荐将搜索半径设置成500米。
  地图
  打车APP定制开发能够实现调用第三方的地图功能,为用户直观显示出用户与空车之间的位置关系,以及的士行驶的方向等信息,并且帮助司机制定达到用户制定位置的路线,使得位置定位更加准确。

收起阅读 »

滴打车T3出行APP定制开发

移动APP

滴滴打车APP开发成本做软件手叽壹伍玖玖叁捌柒叁叁伍捌与功能难易、数量有关
  早期的滴滴打车APP仅有打车功能,单一功能开发成本比较低,但是后期慢慢完善,现在增加了很多功能比如滴滴专车、滴滴快车、顺风车、代驾、公交、租车以及滴滴优享功能,这已经是涵盖了多个业务在内的一站式出行平台,所以更名为“滴滴出行”。如果是要开发这么多功能,那么开发成本将会非常高,一般企业也很难去承担。艾艺认为其实大可不必开发一个和滴滴打车一模一样的APP,试想如果两个APP完全一样,为什么别人不去用滴滴打车APP呢?所以企业开发打车APP要根据实际情况,挖掘自身APP产品特色,而不是完全模仿。
开发做软件手叽壹伍玖玖叁捌柒叁叁伍捌类似滴滴打车APP成本
  如果一个打车APP功能包含实时定位、一键叫车、专车分类、预估价格、在线支付、订单评价/投诉;注册司机、接受派单、申请改派、个人中心等,那么开发这些功能的打车APP的成本不低于25万,如果再加上后期维护和修改费用,后期的报价要30万左右。当然如果采用模板直接来制作的话,可能需要10万左右,但是采用套版的方式来开发APP弊端更多,一般APP都是原生开发。

继续阅读 »

滴滴打车APP开发成本做软件手叽壹伍玖玖叁捌柒叁叁伍捌与功能难易、数量有关
  早期的滴滴打车APP仅有打车功能,单一功能开发成本比较低,但是后期慢慢完善,现在增加了很多功能比如滴滴专车、滴滴快车、顺风车、代驾、公交、租车以及滴滴优享功能,这已经是涵盖了多个业务在内的一站式出行平台,所以更名为“滴滴出行”。如果是要开发这么多功能,那么开发成本将会非常高,一般企业也很难去承担。艾艺认为其实大可不必开发一个和滴滴打车一模一样的APP,试想如果两个APP完全一样,为什么别人不去用滴滴打车APP呢?所以企业开发打车APP要根据实际情况,挖掘自身APP产品特色,而不是完全模仿。
开发做软件手叽壹伍玖玖叁捌柒叁叁伍捌类似滴滴打车APP成本
  如果一个打车APP功能包含实时定位、一键叫车、专车分类、预估价格、在线支付、订单评价/投诉;注册司机、接受派单、申请改派、个人中心等,那么开发这些功能的打车APP的成本不低于25万,如果再加上后期维护和修改费用,后期的报价要30万左右。当然如果采用模板直接来制作的话,可能需要10万左右,但是采用套版的方式来开发APP弊端更多,一般APP都是原生开发。

收起阅读 »

解决uniapp打包微信小程序无法在新版微信开发者工具预览问题


本来上周还好好的,今天更新了微信开发者工具后突然发现小程序无法预览了,搞了半天才从微信文档得知原因原来是增强编译的锅,从微信开发者工具更新日志可知,增强编译会导致压缩包体积过大从而无法预览,真的坑爹!!
解决办法有两种要么下载安装最新开发版的微信开发者工具,如果使用最新稳定版的就用下面的方法


由于最新稳定版的微信开发者工具已经没有了增强编译这个选项,所幸微信也提供了配置改回以前的版本,请看下图


"showES6CompileOption": true,//打开旧版 es6转es5以及增强编译选项模式
"enhance": false,//关闭增强编译
所以说,uniapp开发的话可以通过修改manifest.json里的配置实现以上操作


或者说直接从开发者工具中修改配置也行

继续阅读 »


本来上周还好好的,今天更新了微信开发者工具后突然发现小程序无法预览了,搞了半天才从微信文档得知原因原来是增强编译的锅,从微信开发者工具更新日志可知,增强编译会导致压缩包体积过大从而无法预览,真的坑爹!!
解决办法有两种要么下载安装最新开发版的微信开发者工具,如果使用最新稳定版的就用下面的方法


由于最新稳定版的微信开发者工具已经没有了增强编译这个选项,所幸微信也提供了配置改回以前的版本,请看下图


"showES6CompileOption": true,//打开旧版 es6转es5以及增强编译选项模式
"enhance": false,//关闭增强编译
所以说,uniapp开发的话可以通过修改manifest.json里的配置实现以上操作


或者说直接从开发者工具中修改配置也行

收起阅读 »

Android端通过plus.runtime.launchApplication启动其他APP时,参数传递及接收

Android端通过plus.runtime.launchApplication启动其他APP时,传参及接收参数:

1、启动应用并传递参数

      if (plus.runtime.isApplicationExist({ //根据包名判断应用是否安装  
                    pname: 'com.example.testbluetooth',  
                })) {  
                plus.runtime.launchApplication({ //根据包名启动Android原生开发的App  
                        pname: 'com.example.testbluetooth',  
                        extra:{  //要传递过去的参数  
                            title:'该参数由桥梁APP启动时传递'  
                        }  
                    },  
                    function(e) {  
                        console.log('Open system default browser failed: ' + e.message);  
                    }  
                );  
            }

2、原生APP端参数接收
uni-app应用启动时传递的参数在原生App启动页的onNewIntent(intent: Intent?)方法中接收

override fun onNewIntent(intent: Intent?) { //Uni-app通过包名启动时,传递的参数在该方法中获取  
        super.onNewIntent(intent)  
        Log.v("test","参数 title = "+intent!!.getStringExtra("title"))  
        Log.v("test",intent.extras.toString())  
    }

3、uni-app在APP.vue的onLaunch方法中通过plus.runtime.arguments获取启动时传递的参数

继续阅读 »

Android端通过plus.runtime.launchApplication启动其他APP时,传参及接收参数:

1、启动应用并传递参数

      if (plus.runtime.isApplicationExist({ //根据包名判断应用是否安装  
                    pname: 'com.example.testbluetooth',  
                })) {  
                plus.runtime.launchApplication({ //根据包名启动Android原生开发的App  
                        pname: 'com.example.testbluetooth',  
                        extra:{  //要传递过去的参数  
                            title:'该参数由桥梁APP启动时传递'  
                        }  
                    },  
                    function(e) {  
                        console.log('Open system default browser failed: ' + e.message);  
                    }  
                );  
            }

2、原生APP端参数接收
uni-app应用启动时传递的参数在原生App启动页的onNewIntent(intent: Intent?)方法中接收

override fun onNewIntent(intent: Intent?) { //Uni-app通过包名启动时,传递的参数在该方法中获取  
        super.onNewIntent(intent)  
        Log.v("test","参数 title = "+intent!!.getStringExtra("title"))  
        Log.v("test",intent.extras.toString())  
    }

3、uni-app在APP.vue的onLaunch方法中通过plus.runtime.arguments获取启动时传递的参数

收起阅读 »

非登录 tabbar跳转登录,

公司开发一套软件,用户未登录可以访问首页,未登录点击我的,未登录跳转登录页面,登录了就跳转我的,在我的里面做了判断,会闪一下我的界面在进入登录页,这样体验效果不是太好,这里只提供了 app
下面上代码:
uni.getSystemInfo({
success: (res) => {
this.view = new plus.nativeObj.View('test', {
bottom: '0px',
left: '0px',
height: (res.screenHeight - res.windowHeight)+'px',
width: '100%'
});
this.view.show();
// this.view.interceptTouchEvent(true)
// this.view.setTouchEventRect([{left: '0px',bottom: '0px'}])
this.view.addEventListener('click',() => {
uni.navigateTo({
url: '../sign/sign',
success: () => {
console.log(this)
this.view.hide();
this.view = null;
}
})
},false)
}
})

这样子未登录的时候就可以跳转到登录页面了

继续阅读 »

公司开发一套软件,用户未登录可以访问首页,未登录点击我的,未登录跳转登录页面,登录了就跳转我的,在我的里面做了判断,会闪一下我的界面在进入登录页,这样体验效果不是太好,这里只提供了 app
下面上代码:
uni.getSystemInfo({
success: (res) => {
this.view = new plus.nativeObj.View('test', {
bottom: '0px',
left: '0px',
height: (res.screenHeight - res.windowHeight)+'px',
width: '100%'
});
this.view.show();
// this.view.interceptTouchEvent(true)
// this.view.setTouchEventRect([{left: '0px',bottom: '0px'}])
this.view.addEventListener('click',() => {
uni.navigateTo({
url: '../sign/sign',
success: () => {
console.log(this)
this.view.hide();
this.view = null;
}
})
},false)
}
})

这样子未登录的时候就可以跳转到登录页面了

收起阅读 »

uniap unicloud npro mypui开发教学与经验分享

nvue

mypUI和nPro的作者不定时直播。讲解uniapp、unicloud、npro、mypUI的使用。有直播的时候会在此提前发布消息。谢谢各位支持。

wx:pptpdf

qq:382006503

视频号:马三又的又

前往nPro

7月3日直播回放

继续阅读 »

mypUI和nPro的作者不定时直播。讲解uniapp、unicloud、npro、mypUI的使用。有直播的时候会在此提前发布消息。谢谢各位支持。

wx:pptpdf

qq:382006503

视频号:马三又的又

前往nPro

7月3日直播回放

收起阅读 »

加油话费软件开发的弊端

小程序

:招募代理商,你有系统源码,你是零成本的,你可以往下把卡批发给你的代理商,自定义的设置不同面值,不同金额。以100面值的加油卡为例,起订2000张,单价3元每张,那纯利润6000。有的大客户,有很多资源的,你可以根据他的拿卡量自定义的设置价格,你是零成本的,只要赚进来的都是利润。
第二:零售给有车,需要经常加油的朋友。假如一张卡可以帮他们加油省下来100元,卖给他们一张20元。这个对车主是非常有吸引力的,就是大家要思考通过什么样的方式和渠道去让有需求的车主知道并找你买单。不过这个方法并不是多挣钱的途径。
第三:为实体店引流赋能。大家都知道,今年受疫情影响,很多线下实体店都举步维艰,面临生存发展的困难,甚至出现整条街大面积的店铺转让退租的情况!那么在这样的情况下,实体店可以如何通过一些活动,来拓客引流,如何通过一些方案提升店面消费,在2020年的大环境中求生发展呢?
抓住实体店当下需要拓客引流的痛点,我开始大批量的找到线下实体门店去谈合作。通过油卡来帮助他们做活动,刺激消费。

继续阅读 »

:招募代理商,你有系统源码,你是零成本的,你可以往下把卡批发给你的代理商,自定义的设置不同面值,不同金额。以100面值的加油卡为例,起订2000张,单价3元每张,那纯利润6000。有的大客户,有很多资源的,你可以根据他的拿卡量自定义的设置价格,你是零成本的,只要赚进来的都是利润。
第二:零售给有车,需要经常加油的朋友。假如一张卡可以帮他们加油省下来100元,卖给他们一张20元。这个对车主是非常有吸引力的,就是大家要思考通过什么样的方式和渠道去让有需求的车主知道并找你买单。不过这个方法并不是多挣钱的途径。
第三:为实体店引流赋能。大家都知道,今年受疫情影响,很多线下实体店都举步维艰,面临生存发展的困难,甚至出现整条街大面积的店铺转让退租的情况!那么在这样的情况下,实体店可以如何通过一些活动,来拓客引流,如何通过一些方案提升店面消费,在2020年的大环境中求生发展呢?
抓住实体店当下需要拓客引流的痛点,我开始大批量的找到线下实体门店去谈合作。通过油卡来帮助他们做活动,刺激消费。

收起阅读 »

uniapp使用jsonp解决跨域请求jsonp接口

第一步首先安装npm i vue-isonp -save

第二步 在main.js中引入
import {VueJsonp} from 'vue-jsonp'不好使就试试import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)

第三步 接口调用时
getList() {
var that = this
var data={
你的传参
}
let url = "你的地址";
this.$jsonp(url, data) //jsonp请求
.then(res => {
console.log('+++++++++++',res)
})
.catch(error => {
console.log(error);
})
},

继续阅读 »

第一步首先安装npm i vue-isonp -save

第二步 在main.js中引入
import {VueJsonp} from 'vue-jsonp'不好使就试试import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)

第三步 接口调用时
getList() {
var that = this
var data={
你的传参
}
let url = "你的地址";
this.$jsonp(url, data) //jsonp请求
.then(res => {
console.log('+++++++++++',res)
})
.catch(error => {
console.log(error);
})
},

收起阅读 »

uni.loadFontFace(Object object) 方法缺少一个重要参数

引入字体


如图,微信官方文档中对于loadFontFace方法有一个重要的非必填参数global,这个参数直接影响此方法是否能在入口页面调用。
但是在uniapp的对应文档中没有提示有此参数。直接导致loadFontFace 在App.vue中调用时不会有任何成功/失败的反馈。字体也无法顺利加载。

相关修正的PR已经在gitee提交了。
请官方抽空修正npm 包

@dcloudio/types -> uni-app -> uni.d.ts:9828

 interface LoadFontFaceOptions {  
        /**  
         * 是否全局生效  
         */  
        global: boolean;  
        /**  
         * 定义的字体名称  
         */  
        family: string;  
        /**  
         * 字体资源的地址。建议格式为 TTF 和 WOFF,WOFF2 在低版本的iOS上会不兼容。  
         */  
        source: string;  
        /**  
         * 可选的字体描述符  
         */  
        desc?: LoadFontFaceOptionsDesc;  
        /**  
         * 接口调用成功的回调函数  
         */  
        success?: (result: any) => void;  
        /**  
         * 接口调用失败的回调函数  
         */  
        fail?: (result: any) => void;  
        /**  
         * 接口调用结束的回调函数(调用成功、失败都会执行)  
         */  
        complete?: (result: any) => void;  
    }
继续阅读 »


如图,微信官方文档中对于loadFontFace方法有一个重要的非必填参数global,这个参数直接影响此方法是否能在入口页面调用。
但是在uniapp的对应文档中没有提示有此参数。直接导致loadFontFace 在App.vue中调用时不会有任何成功/失败的反馈。字体也无法顺利加载。

相关修正的PR已经在gitee提交了。
请官方抽空修正npm 包

@dcloudio/types -> uni-app -> uni.d.ts:9828

 interface LoadFontFaceOptions {  
        /**  
         * 是否全局生效  
         */  
        global: boolean;  
        /**  
         * 定义的字体名称  
         */  
        family: string;  
        /**  
         * 字体资源的地址。建议格式为 TTF 和 WOFF,WOFF2 在低版本的iOS上会不兼容。  
         */  
        source: string;  
        /**  
         * 可选的字体描述符  
         */  
        desc?: LoadFontFaceOptionsDesc;  
        /**  
         * 接口调用成功的回调函数  
         */  
        success?: (result: any) => void;  
        /**  
         * 接口调用失败的回调函数  
         */  
        fail?: (result: any) => void;  
        /**  
         * 接口调用结束的回调函数(调用成功、失败都会执行)  
         */  
        complete?: (result: any) => void;  
    }
收起阅读 »

video 播放本地m3u8问题.

m3u8 uniapp video

video组件已经非常强大了;
m3u8高清流畅;
mp4支持软/硬解;
mp4小视频播放自动缓存,流畅无缝重复播放;
最新版支持自定义Header;
m3u8/mp4等格式可以通过plus.downloader.createDownload实现缓存下载;
可以满足99.9%的视频播放需求!!!

但是video的不足之处;
播放本地m3u8视频能力不足.

示例:

    <template>      
        <view class="">      
            <video v-if="src" :src="src" controls @error="err"></video>     
            <!-- 可以正常播放 -->  
            <button type="default" @tap="setStr('_www/static/1.m3u8')">本地未加密本地地址</button>  
            <!-- 不能正常播放 -->  
            <button type="default" @tap="setStr('_www/static/2.m3u8')">本地未加密网络地址</button>  
            <!-- 不能正常播放 -->  
            <button type="default" @tap="setStr('_www/static/encrypt/index.m3u8')">本地加密本地地址</button>  
        </view>      
    </template>      

    <script>      
        export default {      
            data() {      
                return {      
                    src: ''  
                };      
            },      
            onLoad() {     
            },      
            methods: {    
                setStr(src){  
                    this.src = 'file://' + plus.io.convertLocalFileSystemURL(src);  
                    console.log(this.src);  
                },  
                err(e) {  
                  console.log(e);    
                },  
            }      
        };      
    </script>      

    <style>      
    </style>  
继续阅读 »

video组件已经非常强大了;
m3u8高清流畅;
mp4支持软/硬解;
mp4小视频播放自动缓存,流畅无缝重复播放;
最新版支持自定义Header;
m3u8/mp4等格式可以通过plus.downloader.createDownload实现缓存下载;
可以满足99.9%的视频播放需求!!!

但是video的不足之处;
播放本地m3u8视频能力不足.

示例:

    <template>      
        <view class="">      
            <video v-if="src" :src="src" controls @error="err"></video>     
            <!-- 可以正常播放 -->  
            <button type="default" @tap="setStr('_www/static/1.m3u8')">本地未加密本地地址</button>  
            <!-- 不能正常播放 -->  
            <button type="default" @tap="setStr('_www/static/2.m3u8')">本地未加密网络地址</button>  
            <!-- 不能正常播放 -->  
            <button type="default" @tap="setStr('_www/static/encrypt/index.m3u8')">本地加密本地地址</button>  
        </view>      
    </template>      

    <script>      
        export default {      
            data() {      
                return {      
                    src: ''  
                };      
            },      
            onLoad() {     
            },      
            methods: {    
                setStr(src){  
                    this.src = 'file://' + plus.io.convertLocalFileSystemURL(src);  
                    console.log(this.src);  
                },  
                err(e) {  
                  console.log(e);    
                },  
            }      
        };      
    </script>      

    <style>      
    </style>  
收起阅读 »