HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uniapp 使用 原生插件開發教學

java 插件 原生

看了幾天官方教學,
都不看得太懂
所以特地分享個影片教學:
https://www.bilibili.com/video/BV13V411H7W2?from=search&seid=6151344640479104846&spm_id_from=333.337.0.0

继续阅读 »

看了幾天官方教學,
都不看得太懂
所以特地分享個影片教學:
https://www.bilibili.com/video/BV13V411H7W2?from=search&seid=6151344640479104846&spm_id_from=333.337.0.0

收起阅读 »

HBuilder X 3.2.12 版本 运行自动关闭软件

HBuilder X 3.2.12 版本 点击运行 > 运行到终端 > 1. npm run dev 不运行 自动关闭HBuilder X 更新前还正常可以运行 刚更新完 点击运行 就出现这个问题

HBuilder X 3.2.12 版本 点击运行 > 运行到终端 > 1. npm run dev 不运行 自动关闭HBuilder X 更新前还正常可以运行 刚更新完 点击运行 就出现这个问题

如何投诉 插件上传者:哦啊哈思 作者QQ: 397879576骗钱300

https://ext.dcloud.net.cn/plugin?id=2284
这个插件是他的,这是一个骗子,加了他QQ问我收了300块钱,这个模板里边小说接口失效了,我说找他付费更新下,他说过每个接口150,前端首页这里帮我对接好,我需要写三个接口,一个是首页男生推荐列表,一个是首页女生推荐列表,一个是搜索页的,一共是450,觉得是dcloud的可信,我先给他转了300,说1天可以帮忙弄好。结果他一直说有事,弄了2-3天才说弄完,但是首页列表没有图片,搜索页也搜索不出数据,他说那是另外的接口了,还需要付费,然后再写就不帮前端对接了。

继续阅读 »

https://ext.dcloud.net.cn/plugin?id=2284
这个插件是他的,这是一个骗子,加了他QQ问我收了300块钱,这个模板里边小说接口失效了,我说找他付费更新下,他说过每个接口150,前端首页这里帮我对接好,我需要写三个接口,一个是首页男生推荐列表,一个是首页女生推荐列表,一个是搜索页的,一共是450,觉得是dcloud的可信,我先给他转了300,说1天可以帮忙弄好。结果他一直说有事,弄了2-3天才说弄完,但是首页列表没有图片,搜索页也搜索不出数据,他说那是另外的接口了,还需要付费,然后再写就不帮前端对接了。

收起阅读 »

uniapp最新的3.2.12.20211029,苹果虚拟支付返回的receipt有问题,验证receipt一直报错21003 receipt无法通过验证。

bug反馈

uniapp最新的3.2.12.20211029,苹果虚拟支付返回的receipt有问题,验证receipt一直报错21003 receipt无法通过验证。这是个比较严重的BUG,希望尽快修复,我回退了一个版本才解决

uniapp最新的3.2.12.20211029,苹果虚拟支付返回的receipt有问题,验证receipt一直报错21003 receipt无法通过验证。这是个比较严重的BUG,希望尽快修复,我回退了一个版本才解决

【阿里云/腾讯云】双11爆款优惠特价服务器

React Native Vue

【阿里云】双11爆款优惠特价服务器
1核2G1M 180元/3年
2核2G5M 58元/1年
2核4G5M 600元/3年
4核8G5M 1500/3年
活动地址:
https://www.aliyun.com/minisite/goods?taskPkg=1111ydsrwb&pkgSid=5985&userCode=wbqjs7bw

【腾讯云】双11爆款优惠特价服务器
1核2G5M 50G云盘,50元/1年
2核4G8M 80G云盘,74元/1年
2核4G3M 50G云盘,968元/3年(16:00开抢)
4核8G5M 50G云盘,818元/1年(19:00开抢)
活动地址:
https://curl.qcloud.com/mMBBtBDp

继续阅读 »

【阿里云】双11爆款优惠特价服务器
1核2G1M 180元/3年
2核2G5M 58元/1年
2核4G5M 600元/3年
4核8G5M 1500/3年
活动地址:
https://www.aliyun.com/minisite/goods?taskPkg=1111ydsrwb&pkgSid=5985&userCode=wbqjs7bw

【腾讯云】双11爆款优惠特价服务器
1核2G5M 50G云盘,50元/1年
2核4G8M 80G云盘,74元/1年
2核4G3M 50G云盘,968元/3年(16:00开抢)
4核8G5M 50G云盘,818元/1年(19:00开抢)
活动地址:
https://curl.qcloud.com/mMBBtBDp

收起阅读 »

嵌套list联动内部list滚动到顶部后拖不动

nvue
<list id="list0">  
 <swiper>  
<swiper-item>  
<list id="list1" >  
<cell>内部不能有空的cell标签,如果有list1在内容滚动到顶部后list0无法联动 </cell>  
</list>  
</swiper-item>  
</swiper>  
</list>
继续阅读 »
<list id="list0">  
 <swiper>  
<swiper-item>  
<list id="list1" >  
<cell>内部不能有空的cell标签,如果有list1在内容滚动到顶部后list0无法联动 </cell>  
</list>  
</swiper-item>  
</swiper>  
</list>
收起阅读 »

承接uniapp项目

外包

3年uniapp开发经验,曾开发上线的项目有微信公众号网页,安卓机iosAPP,微信小程序,抖音小程序等,从产品规划到设计,前端、后端开发都能做,个人开发,有需要的滴滴QQ576869212

3年uniapp开发经验,曾开发上线的项目有微信公众号网页,安卓机iosAPP,微信小程序,抖音小程序等,从产品规划到设计,前端、后端开发都能做,个人开发,有需要的滴滴QQ576869212

找靠谱前端和后端开发,兼职,可远程办公

混合开发

有兼职项目,需要扫描二维码可加VX沟通:

有兼职项目,需要扫描二维码可加VX沟通:

UNIAPP background=transparent不生效

uniapp

在pages.json里面,在需要透明背景的界面里面加上下面的语句就行了
"backgroundColorTop": "transparent",
"backgroundColorBottom": "transparent",

继续阅读 »

在pages.json里面,在需要透明背景的界面里面加上下面的语句就行了
"backgroundColorTop": "transparent",
"backgroundColorBottom": "transparent",

收起阅读 »

android遍历短信/读取短信

Native.JS

官方Native.js 示例获取所有短信进行遍历的示例有问题 ,一直报TypeError: Cannot read property 'TYPE' of null,自定义调试基座以及权限是没问题的,查找帖子找到如下代码,分享一下,希望官方能看见修改,下面代码经测试无问题 ,帖子转自https://cnbing.net/Detail/8.html,不能评论,表示感谢

    getMassage() {  
                if(plus.os.name === 'Android'){  
                    //不同机型可能获取不全  
                    //查看权限是否已允许  
                    var Context = plus.android.runtimeMainActivity()  
                    var res = plus.android.invoke('android.support.v4.app.ActivityCompat', 'checkSelfPermission', Context,  'android.permission.READ_SMS')  
                    var PERMISSIONS_STORAGE = new Array()  
                    PERMISSIONS_STORAGE.push('android.permission.READ_SMS')   
                    if (res !== '0')   
                    {     
                         plus.android.invoke('android.support.v4.app.ActivityCompat', 'requestPermissions', Context, PERMISSIONS_STORAGE, 1)  
                    } else {      

                    }  
                    var main = plus.android.runtimeMainActivity()  
                    var Uri = plus.android.importClass('android.net.Uri')  
                    var ContactsContract = plus.android.importClass('android.provider.ContactsContract')  
                    var uri = Uri.parse('content://sms/')  
                    var cr = main.getContentResolver()  
                    plus.android.importClass(cr)  
                    var cur = cr.query(uri, null, null, null, null)  
                    plus.android.importClass(cur)  
                    cur.moveToFirst()  
                    var smslist = []  
                    while (cur.moveToNext())   
                    {  
                        var index_Address = cur.getColumnIndex('address')  
                        var address = cur.getString(index_Address)  
                        //短信内容  
                        var index_Body = cur.getColumnIndex('body')  
                        var body = cur.getString(index_Body)  
                        //类型1接收 2发送  
                        var index_Type = cur.getColumnIndex('type')  
                        var type = cur.getString(index_Type)  
                        smslist.push({  
                            address:address,  
                            body:body,  
                            type:type  
                        })  
                    }  
                    console.log(smslist)  
                }else if(plus.os.name === 'iOS'){  
                    console.log('iOS')  
                }  

            },
继续阅读 »

官方Native.js 示例获取所有短信进行遍历的示例有问题 ,一直报TypeError: Cannot read property 'TYPE' of null,自定义调试基座以及权限是没问题的,查找帖子找到如下代码,分享一下,希望官方能看见修改,下面代码经测试无问题 ,帖子转自https://cnbing.net/Detail/8.html,不能评论,表示感谢

    getMassage() {  
                if(plus.os.name === 'Android'){  
                    //不同机型可能获取不全  
                    //查看权限是否已允许  
                    var Context = plus.android.runtimeMainActivity()  
                    var res = plus.android.invoke('android.support.v4.app.ActivityCompat', 'checkSelfPermission', Context,  'android.permission.READ_SMS')  
                    var PERMISSIONS_STORAGE = new Array()  
                    PERMISSIONS_STORAGE.push('android.permission.READ_SMS')   
                    if (res !== '0')   
                    {     
                         plus.android.invoke('android.support.v4.app.ActivityCompat', 'requestPermissions', Context, PERMISSIONS_STORAGE, 1)  
                    } else {      

                    }  
                    var main = plus.android.runtimeMainActivity()  
                    var Uri = plus.android.importClass('android.net.Uri')  
                    var ContactsContract = plus.android.importClass('android.provider.ContactsContract')  
                    var uri = Uri.parse('content://sms/')  
                    var cr = main.getContentResolver()  
                    plus.android.importClass(cr)  
                    var cur = cr.query(uri, null, null, null, null)  
                    plus.android.importClass(cur)  
                    cur.moveToFirst()  
                    var smslist = []  
                    while (cur.moveToNext())   
                    {  
                        var index_Address = cur.getColumnIndex('address')  
                        var address = cur.getString(index_Address)  
                        //短信内容  
                        var index_Body = cur.getColumnIndex('body')  
                        var body = cur.getString(index_Body)  
                        //类型1接收 2发送  
                        var index_Type = cur.getColumnIndex('type')  
                        var type = cur.getString(index_Type)  
                        smslist.push({  
                            address:address,  
                            body:body,  
                            type:type  
                        })  
                    }  
                    console.log(smslist)  
                }else if(plus.os.name === 'iOS'){  
                    console.log('iOS')  
                }  

            },
收起阅读 »

PDA扫码在uniapp中的使用

该方式仅限广播模式使用,使用前请注意是否设置好;
该方法参考别人,但没使用全局监听方式,而是使用每次进出页面重新加载组件的方式.

参考部分

https://ask.dcloud.net.cn/article/37294;  
http://blog.itpub.net/31486267/viewspace-2739999/  

使用部分

<template>  
    <view>  
        <view class="">  
            扫描结果:{{name}}  
        </view>  
        <monitorScanCode v-if="scanCodeIsShow" @resultCode="resultCode"></monitorScanCode>  
    </view>  
</template>  

<script>  
import monitorScanCode from '@/components/monitorScanCode/monitorScanCode.vue';  
export default {  
    data() {  
        return {  
            name:'请扫描',  
            scanCodeIsShow: false //控制监听扫描头 组件重新加载  
        };  
    },  
    components: {  
        monitorScanCode  
    },  
    onLoad() {},  
    onShow: function() {  
        this.scanCodeIsShow = true;  
    },  
    methods: {  
        resultCode(item) {  
            this.name=item;  
            console.log(item, '结果');  
        }  
    },  
    // 页面隐藏  
    onHide() {  
        this.scanCodeIsShow = false;  
    },  
    // 页面卸载  
    onUnload() {  
        this.scanCodeIsShow = false;  
    }  
};  
</script>  

<style lang="scss"></style>

组件部分

<template>  
    <view class="content"></view>  
</template>  

<script>  
var main, receiver;  
var shakeIsShow = false;  
export default {  
    name:'monitorScanCode',  
    data() {  
        return {  
        };  
    },  
    created(option) {  
        this.monitorScan();  
    },  
    // 组件销毁  
    destroyed(){  
        this.cancelScan();  
    },  
    methods: {  
        // 广播监听绑定  
        monitorScan() {  
            // PDA扫描必须设置广播模式  
            main = plus.android.runtimeMainActivity(); //获取activity  
            let IntentFilter = plus.android.importClass('android.content.IntentFilter');  
            let filter = new IntentFilter();  
            filter.addAction('android.intent.ACTION_DECODE_DATA'); //广播动作  

            let that = this;  
            let context = plus.android.importClass('android.content.Context');  
            let Intent = plus.android.importClass('android.content.Intent');  
            receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
                onReceive: function(context, intent) {  
                    plus.android.importClass(intent); //引入intent类  
                    let data = intent.getStringExtra('barcode_string'); //广播数据标签  
                    that.antiShake(data);  
                }  
            });  
            main.registerReceiver(receiver, filter); //注册监听  
        },  
        //取消监听扫描头  
        cancelScan() {  
            main.unregisterReceiver(receiver);  
        },  
        //防重复  
        antiShake: function(code) {  
            if (shakeIsShow) return false;  
            shakeIsShow = true;  
            setTimeout(function() {  
                shakeIsShow = false;  
            }, 150);  
            this.$emit("resultCode", code)  
        }  
    }  
};  
</script>  

<style>  
page {  
    background-color: #efeff4;  
}  
.content {  
    text-align: center;  
}  
</style>  
继续阅读 »

该方式仅限广播模式使用,使用前请注意是否设置好;
该方法参考别人,但没使用全局监听方式,而是使用每次进出页面重新加载组件的方式.

参考部分

https://ask.dcloud.net.cn/article/37294;  
http://blog.itpub.net/31486267/viewspace-2739999/  

使用部分

<template>  
    <view>  
        <view class="">  
            扫描结果:{{name}}  
        </view>  
        <monitorScanCode v-if="scanCodeIsShow" @resultCode="resultCode"></monitorScanCode>  
    </view>  
</template>  

<script>  
import monitorScanCode from '@/components/monitorScanCode/monitorScanCode.vue';  
export default {  
    data() {  
        return {  
            name:'请扫描',  
            scanCodeIsShow: false //控制监听扫描头 组件重新加载  
        };  
    },  
    components: {  
        monitorScanCode  
    },  
    onLoad() {},  
    onShow: function() {  
        this.scanCodeIsShow = true;  
    },  
    methods: {  
        resultCode(item) {  
            this.name=item;  
            console.log(item, '结果');  
        }  
    },  
    // 页面隐藏  
    onHide() {  
        this.scanCodeIsShow = false;  
    },  
    // 页面卸载  
    onUnload() {  
        this.scanCodeIsShow = false;  
    }  
};  
</script>  

<style lang="scss"></style>

组件部分

<template>  
    <view class="content"></view>  
</template>  

<script>  
var main, receiver;  
var shakeIsShow = false;  
export default {  
    name:'monitorScanCode',  
    data() {  
        return {  
        };  
    },  
    created(option) {  
        this.monitorScan();  
    },  
    // 组件销毁  
    destroyed(){  
        this.cancelScan();  
    },  
    methods: {  
        // 广播监听绑定  
        monitorScan() {  
            // PDA扫描必须设置广播模式  
            main = plus.android.runtimeMainActivity(); //获取activity  
            let IntentFilter = plus.android.importClass('android.content.IntentFilter');  
            let filter = new IntentFilter();  
            filter.addAction('android.intent.ACTION_DECODE_DATA'); //广播动作  

            let that = this;  
            let context = plus.android.importClass('android.content.Context');  
            let Intent = plus.android.importClass('android.content.Intent');  
            receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
                onReceive: function(context, intent) {  
                    plus.android.importClass(intent); //引入intent类  
                    let data = intent.getStringExtra('barcode_string'); //广播数据标签  
                    that.antiShake(data);  
                }  
            });  
            main.registerReceiver(receiver, filter); //注册监听  
        },  
        //取消监听扫描头  
        cancelScan() {  
            main.unregisterReceiver(receiver);  
        },  
        //防重复  
        antiShake: function(code) {  
            if (shakeIsShow) return false;  
            shakeIsShow = true;  
            setTimeout(function() {  
                shakeIsShow = false;  
            }, 150);  
            this.$emit("resultCode", code)  
        }  
    }  
};  
</script>  

<style>  
page {  
    background-color: #efeff4;  
}  
.content {  
    text-align: center;  
}  
</style>  
收起阅读 »

有项目资源,找兼职的程序员可联系

如题,可加VX沟通:15992432080

如题,可加VX沟通:15992432080