HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

vue3 app端组件异步渲染 defineAsyncComponent

vue3

vue3中 defineAsyncComponent 异步渲染 在打包app的时候会报错

Invalid value "iife" for option "output.format" - UMD and IIFE output formats are not supported for code-splitting builds

去掉 defineAsyncComponent 方法 改为正常的引入方式

继续阅读 »

vue3中 defineAsyncComponent 异步渲染 在打包app的时候会报错

Invalid value "iife" for option "output.format" - UMD and IIFE output formats are not supported for code-splitting builds

去掉 defineAsyncComponent 方法 改为正常的引入方式

收起阅读 »

企业和个人发卡网源码带代理系统和搭建教程

  今天,我们就和大家分享一下企业和个人自动发卡网源码。在这篇文章中,我们将向你展示在php中创建自动发卡网系统,完整解析相关源代码,我们将给你演示和示例实现。
  完整企业和个人发卡网源码:fakaysw.top
  步骤1:创建Sendbox帐户
  在这个步骤中,如果您没有sendbox帐户,我们将创建测试。
  步骤2:创建索引文件
  index.php
  .price.panel-red>.panel-heading {
  color: #fff;
  background-color: #D04E50;
  border-color: #FF6062;
  border-bottom: 1px solid #FF6062;
  }
  .price.panel-red>.panel-body {
  color: #fff;
  background-color: #EF5A5C;
  }
  .price .list-group-product{
  border-bottom-:1px solid rgba(250,250,250, .5);
  }
  .panel.price .list-group-product:last-child {
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  }
  .panel.price .list-group-product:first-child {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
  }
  .price .panel-footer {
  color: #fff;
  border-bottom:0px;
  background-color: rgba(0,0,0, .1);
  box-shadow: 0px 3px 0px rgba(0,0,0, .3);
  }
  .panel.price .btn{
  box-shadow: 0 -1px 0px rgba(50,50,50, .2) inset;
  border:0px;
  }
  </style>
  <?php
  $paypalId='kvs3944-facilitator@gmail.com';
  ?>
  <div class="container text-center">
  <br/>
  <br/>
  <div class="row">
  <div class="col-xs-6 col-sm-6 col-md-3 col-md-offset-4 col-lg-3">
  <form action="<?php echo $paypalUrl; ?>" method="post" name="frmPayPal1">
  <div class="panel price panel-red">
  <input type="hidden" name="business" value="<?php echo $paypalId; ?>">
  <input type="hidden" name="cmd" value="_xclick">
  <input type="hidden" name="product_name" value="Pakainfo website">
  <input type="hidden" name="product_number" value="2">
  <input type="hidden" name="amount" value="20">
  <input type="hidden" name="no_shipping" value="1">
  <input type="hidden" name="currency_code" value="USD">
  <div class="panel-heading text-center">
  <h3>PRO PLAN</h3>
  </div>
  <div class="panel-body text-center">
  <p class="lead" style="font-size:40px"><strong>$20 / month</strong></p>
  </div>
  <ul class="list-group list-group-flush text-center">
  <li class="list-group-product"><i class="icon-ok text-danger"></i> Personal use</li>
  <li class="list-group-product"><i class="icon-ok text-danger"></i> Unlimited projects</li>
  <li class="list-group-product"><i class="icon-ok text-danger"></i> 27/7 support</li>
  </ul>
  <div class="panel-footer">
  <button class="btn btn-lg btn-block btn-danger" href="#">BUY NOW!</button>
  </div>
  </div>
  </form>
  </div>
  </div>
  </div>
  </body>
  </html>
  步骤3:创建支付回调
  success.php
  $productNo = $_REQUEST['product_number'];
  $productTransaction = $_REQUEST['tx'];
  $productPrice = $_REQUEST['amt'];
  $productCurrency = $_REQUEST['cc'];
  $price = '20.00';
  $currency='USD';
  if($productPrice==$price && $productCurrency==$currency)
  {
  echo "Your Payment Successful, Good Luck";
  }
  else
  {
  echo "Sorry, Dear Your Payment Failed";
  }
  步骤4:创建取消文件
  echo "Payment Canceled";
  步骤5:发卡网支付网关URL
  $paypalUrl='localhost/cgi-bin/webscr';
  INTO
  $paypalUrl='localhost/cgi-bin/webscr';

继续阅读 »

  今天,我们就和大家分享一下企业和个人自动发卡网源码。在这篇文章中,我们将向你展示在php中创建自动发卡网系统,完整解析相关源代码,我们将给你演示和示例实现。
  完整企业和个人发卡网源码:fakaysw.top
  步骤1:创建Sendbox帐户
  在这个步骤中,如果您没有sendbox帐户,我们将创建测试。
  步骤2:创建索引文件
  index.php
  .price.panel-red>.panel-heading {
  color: #fff;
  background-color: #D04E50;
  border-color: #FF6062;
  border-bottom: 1px solid #FF6062;
  }
  .price.panel-red>.panel-body {
  color: #fff;
  background-color: #EF5A5C;
  }
  .price .list-group-product{
  border-bottom-:1px solid rgba(250,250,250, .5);
  }
  .panel.price .list-group-product:last-child {
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  }
  .panel.price .list-group-product:first-child {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
  }
  .price .panel-footer {
  color: #fff;
  border-bottom:0px;
  background-color: rgba(0,0,0, .1);
  box-shadow: 0px 3px 0px rgba(0,0,0, .3);
  }
  .panel.price .btn{
  box-shadow: 0 -1px 0px rgba(50,50,50, .2) inset;
  border:0px;
  }
  </style>
  <?php
  $paypalId='kvs3944-facilitator@gmail.com';
  ?>
  <div class="container text-center">
  <br/>
  <br/>
  <div class="row">
  <div class="col-xs-6 col-sm-6 col-md-3 col-md-offset-4 col-lg-3">
  <form action="<?php echo $paypalUrl; ?>" method="post" name="frmPayPal1">
  <div class="panel price panel-red">
  <input type="hidden" name="business" value="<?php echo $paypalId; ?>">
  <input type="hidden" name="cmd" value="_xclick">
  <input type="hidden" name="product_name" value="Pakainfo website">
  <input type="hidden" name="product_number" value="2">
  <input type="hidden" name="amount" value="20">
  <input type="hidden" name="no_shipping" value="1">
  <input type="hidden" name="currency_code" value="USD">
  <div class="panel-heading text-center">
  <h3>PRO PLAN</h3>
  </div>
  <div class="panel-body text-center">
  <p class="lead" style="font-size:40px"><strong>$20 / month</strong></p>
  </div>
  <ul class="list-group list-group-flush text-center">
  <li class="list-group-product"><i class="icon-ok text-danger"></i> Personal use</li>
  <li class="list-group-product"><i class="icon-ok text-danger"></i> Unlimited projects</li>
  <li class="list-group-product"><i class="icon-ok text-danger"></i> 27/7 support</li>
  </ul>
  <div class="panel-footer">
  <button class="btn btn-lg btn-block btn-danger" href="#">BUY NOW!</button>
  </div>
  </div>
  </form>
  </div>
  </div>
  </div>
  </body>
  </html>
  步骤3:创建支付回调
  success.php
  $productNo = $_REQUEST['product_number'];
  $productTransaction = $_REQUEST['tx'];
  $productPrice = $_REQUEST['amt'];
  $productCurrency = $_REQUEST['cc'];
  $price = '20.00';
  $currency='USD';
  if($productPrice==$price && $productCurrency==$currency)
  {
  echo "Your Payment Successful, Good Luck";
  }
  else
  {
  echo "Sorry, Dear Your Payment Failed";
  }
  步骤4:创建取消文件
  echo "Payment Canceled";
  步骤5:发卡网支付网关URL
  $paypalUrl='localhost/cgi-bin/webscr';
  INTO
  $paypalUrl='localhost/cgi-bin/webscr';

收起阅读 »

subNvue踩坑奇遇记(二)

subnvue

在subNVue开发过程中,发现当page.json中设置透明色且默认高度为100%时,例如:

                      "subNVues": [  
                        {  
                            "id": "test",  
                            "path":"pages/components/subNVue/test/test",  
                            "type":"popup",  
                            "style": {  
                                "background": "transparent"  
                            }  
                        }  
                    ]

真机调试时,有点击穿透的问题,具体表现为,点击页面中没有元素占位的空挡区域,会触发子窗体关闭,类似点击mask关闭子窗体的效果。

但是设置为具体的颜色,就不会出现上述问题,例如"background": "#FFFFFF",后来尝试使用rgb背景色,并设置为全透明,问题解决,例如:

                     "```javascript  
                                 subNVues": [  
                    {  
                        "id": "test",  
                        "path":"pages/components/subNVue/test/test",  
                        "type":"popup",  
                        "style": {  
                            "background": "rgba(0,0,0,0)"  
                        }  
                    }  
                ]
继续阅读 »

在subNVue开发过程中,发现当page.json中设置透明色且默认高度为100%时,例如:

                      "subNVues": [  
                        {  
                            "id": "test",  
                            "path":"pages/components/subNVue/test/test",  
                            "type":"popup",  
                            "style": {  
                                "background": "transparent"  
                            }  
                        }  
                    ]

真机调试时,有点击穿透的问题,具体表现为,点击页面中没有元素占位的空挡区域,会触发子窗体关闭,类似点击mask关闭子窗体的效果。

但是设置为具体的颜色,就不会出现上述问题,例如"background": "#FFFFFF",后来尝试使用rgb背景色,并设置为全透明,问题解决,例如:

                     "```javascript  
                                 subNVues": [  
                    {  
                        "id": "test",  
                        "path":"pages/components/subNVue/test/test",  
                        "type":"popup",  
                        "style": {  
                            "background": "rgba(0,0,0,0)"  
                        }  
                    }  
                ]
收起阅读 »

【打包失败提示】本地安装包生成失败,请重试或者切换到非安心打包模式进行打包

App打包

重新打包一次就好,不需要修改任何信息

重新打包一次就好,不需要修改任何信息

uni-app 小程序解决 PNG序列帧动画闪烁问题,app也适用

uni-app 小程序解决 PNG序列帧动画闪烁问题,app也适用
有偿提供代码
联系QQ:543610866

uni-app 小程序解决 PNG序列帧动画闪烁问题,app也适用
有偿提供代码
联系QQ:543610866

uni-app ios 实现闹钟本地推送,可设置时候提示通知,app完全关闭也可以收到,可自定义推送声音

uni-app ios 实现闹钟本地推送,可设置什么时候提示通知,app完全关闭也可以收到,可自定义推送声音
有偿提供代码
有需要的联系QQ:543610866

uni-app ios 实现闹钟本地推送,可设置什么时候提示通知,app完全关闭也可以收到,可自定义推送声音
有偿提供代码
有需要的联系QQ:543610866

subNvue踩坑奇遇记(一)

subnvue

1、对subNVue子窗体的样式修改,要放在subNVue.show接口的回调函数中,注意此时的this已经不在上下文,需要在调用show接口前const self = this;重新指向,才能使用窗口的接口

const subNVue = uni.getSubNVueById('selector')  
                const self = this  
                subNVue.show('slide-in-right', 300, function(){  
                    const statusBarHeight = `${uni.getSystemInfoSync().statusBarHeight}px`  
                    const height = `${(uni.getSystemInfoSync().screenHeight  - uni.getSystemInfoSync().statusBarHeight)}px`  
                    subNVue.setStyle({  
                        top: statusBarHeight,   
                        height: height  
                    })  
                });

2、在主窗口向subNVue子窗体发起消息时,要加延时才会触发,即使放在show()接口的回调中,也需要加延时,调试了很久子窗口都无法监听到事件,后来加了延时就可以了(非常痛苦,在uniapp框架下,如果发现一些代码没有效果,都要尝试一下增加延时)

setTimeout(() => {  
                        uni.$emit('selector-init', {  
                            title: self.$t('kkkk‘)  
                        })  
                    }, 200)

3、在子窗体上要注意,nvue是不支持vuex的,从nvue调用的外部js函数,该js函数中也是无法读取vuex的,如果有vue和nvue的共享变量,需要放到storage里面或者其他可以共享的方式

4、阶段性总结一下,非必要情况下,还是不要用subNvue了,样式支持有限、各种奇怪问题、不支持vuex等等,最主要是样式的调试非常不方便,目前我还没找到像webview模式一样方便的调试方法。有知道样式调试方法的,还希望不吝赐教。说到调试,补充一句,subNVue的官方文档实在是太少了。

继续阅读 »

1、对subNVue子窗体的样式修改,要放在subNVue.show接口的回调函数中,注意此时的this已经不在上下文,需要在调用show接口前const self = this;重新指向,才能使用窗口的接口

const subNVue = uni.getSubNVueById('selector')  
                const self = this  
                subNVue.show('slide-in-right', 300, function(){  
                    const statusBarHeight = `${uni.getSystemInfoSync().statusBarHeight}px`  
                    const height = `${(uni.getSystemInfoSync().screenHeight  - uni.getSystemInfoSync().statusBarHeight)}px`  
                    subNVue.setStyle({  
                        top: statusBarHeight,   
                        height: height  
                    })  
                });

2、在主窗口向subNVue子窗体发起消息时,要加延时才会触发,即使放在show()接口的回调中,也需要加延时,调试了很久子窗口都无法监听到事件,后来加了延时就可以了(非常痛苦,在uniapp框架下,如果发现一些代码没有效果,都要尝试一下增加延时)

setTimeout(() => {  
                        uni.$emit('selector-init', {  
                            title: self.$t('kkkk‘)  
                        })  
                    }, 200)

3、在子窗体上要注意,nvue是不支持vuex的,从nvue调用的外部js函数,该js函数中也是无法读取vuex的,如果有vue和nvue的共享变量,需要放到storage里面或者其他可以共享的方式

4、阶段性总结一下,非必要情况下,还是不要用subNvue了,样式支持有限、各种奇怪问题、不支持vuex等等,最主要是样式的调试非常不方便,目前我还没找到像webview模式一样方便的调试方法。有知道样式调试方法的,还希望不吝赐教。说到调试,补充一句,subNVue的官方文档实在是太少了。

收起阅读 »

tob-use 最高效好用的 composition-api 库

分享插件 vue3

tob-use

tob-use 是由 composition-api 构建的 use 库,主要面向 vue3 下的 uniapp 高效开发

特点

  1. 功能丰富,60+ 的功能供你选择
  2. 按需加载,让你的应用体积更小
  3. 灵活可配置,可配置的事件过滤器
  4. 支持多端,支持 app,h5 和小程序
  5. composition,完全由 composition-api 构建
  6. vue3,支持最现代化的 vue3 版本

在线文档

点击跳转 tob-use

继续阅读 »

tob-use

tob-use 是由 composition-api 构建的 use 库,主要面向 vue3 下的 uniapp 高效开发

特点

  1. 功能丰富,60+ 的功能供你选择
  2. 按需加载,让你的应用体积更小
  3. 灵活可配置,可配置的事件过滤器
  4. 支持多端,支持 app,h5 和小程序
  5. composition,完全由 composition-api 构建
  6. vue3,支持最现代化的 vue3 版本

在线文档

点击跳转 tob-use

收起阅读 »

blob:格式的链接 在uniapp开发中怎么处理

在 H5上预览或者下载 docx文件/pdf文件。 uniapp 能否支持打开此类型的链接?应该怎么样处理bolb格式的链接。

在 H5上预览或者下载 docx文件/pdf文件。 uniapp 能否支持打开此类型的链接?应该怎么样处理bolb格式的链接。

考虑用renderjs做app和h5端的上传

上传文件
<template>  
</template>  
<script>  
    export default {  
        methods: {  
            chooseAndUpload() {  
                this.chooseFile(() => {  

                })  
            },  
            chooseFile(cb) {  
                // #ifdef APP-VUE || H5  
                this.file.choose((files) => {  
                    cb && cb(files)  
                })  
                // #endif  
                // #ifdef MP-WEIXIN  
                this.chooseFromWX((res) => {  
                    console.log(res);  
                    cb && cb(res)  
                })  
                // #endif  
            },  
            chooseFromWX(cb) {  
                wx.chooseMessageFile({  
                    count: 9,  
                    type: 'file',  
                    success(res) {  
                        cb && cb(res);  
                    }  
                })  
            }  
        },  
    }  
</script>  
<script module="file" lang="renderjs">  
    let inputEl = {  
        el: null,  
        inject(cb) {  
            if (!this.el) {  
                let input = document.createElement("input")  
                input.type = "file"  
                input.id = "_file"  
                input.style.display = "none"  
                input.addEventListener("change", cb)  
                this.el = input  
                document.body.append(input)  
            }  
            this.el.click()  
            return this.el  
        },  
        remove(cb) {  
            if (this.el) {  
                this.el.removeEventListener("change", cb)  
                this.el.remove()  
                this.el = null  
            }  
        }  
    }  
    export default {  
        methods: {  
            _success() {},  
            choose(cb) {  
                inputEl.inject(this.fileChange)  
                cb && (this._success = cb)  
            },  
            fileChange(e) {  
                this._success && this._success(e.target.files)  
                inputEl.remove(this.fileChange)  
            }  
        }  
    }  
</script>  
<style>  
</style>

提供一种思路,进测试能够再我的安卓机上选择文件,别的还需要完善,各位有指教的话请发表一下自己的思路

继续阅读 »
<template>  
</template>  
<script>  
    export default {  
        methods: {  
            chooseAndUpload() {  
                this.chooseFile(() => {  

                })  
            },  
            chooseFile(cb) {  
                // #ifdef APP-VUE || H5  
                this.file.choose((files) => {  
                    cb && cb(files)  
                })  
                // #endif  
                // #ifdef MP-WEIXIN  
                this.chooseFromWX((res) => {  
                    console.log(res);  
                    cb && cb(res)  
                })  
                // #endif  
            },  
            chooseFromWX(cb) {  
                wx.chooseMessageFile({  
                    count: 9,  
                    type: 'file',  
                    success(res) {  
                        cb && cb(res);  
                    }  
                })  
            }  
        },  
    }  
</script>  
<script module="file" lang="renderjs">  
    let inputEl = {  
        el: null,  
        inject(cb) {  
            if (!this.el) {  
                let input = document.createElement("input")  
                input.type = "file"  
                input.id = "_file"  
                input.style.display = "none"  
                input.addEventListener("change", cb)  
                this.el = input  
                document.body.append(input)  
            }  
            this.el.click()  
            return this.el  
        },  
        remove(cb) {  
            if (this.el) {  
                this.el.removeEventListener("change", cb)  
                this.el.remove()  
                this.el = null  
            }  
        }  
    }  
    export default {  
        methods: {  
            _success() {},  
            choose(cb) {  
                inputEl.inject(this.fileChange)  
                cb && (this._success = cb)  
            },  
            fileChange(e) {  
                this._success && this._success(e.target.files)  
                inputEl.remove(this.fileChange)  
            }  
        }  
    }  
</script>  
<style>  
</style>

提供一种思路,进测试能够再我的安卓机上选择文件,别的还需要完善,各位有指教的话请发表一下自己的思路

收起阅读 »

uni-app nvue andorid 哀悼日全局灰,灰度滤镜,解决filter灰色滤镜不能使用

uni-app nvue andorid 哀悼日全局灰,灰度滤镜,解决filter灰色滤镜不能使用
有偿提供代码
QQ:543610866

全局哀悼日全局灰、灰度滤镜、vue和nvue都是可用(ios、andorid):https://ext.dcloud.net.cn/plugin?id=7513

继续阅读 »

uni-app nvue andorid 哀悼日全局灰,灰度滤镜,解决filter灰色滤镜不能使用
有偿提供代码
QQ:543610866

全局哀悼日全局灰、灰度滤镜、vue和nvue都是可用(ios、andorid):https://ext.dcloud.net.cn/plugin?id=7513

收起阅读 »

【报Bug】在配置微信开发者工具路径中,浏览找不到桌面微信开发者工具文件。

【报Bug】在配置微信开发者工具路径中,浏览找不到桌面微信开发者工具文件。但是其他开发者工具路径能正常找到。
HBuilderX版本号:3.3.12alpha和标准版都一样
开发环境是 Windows.7旗舰版

【报Bug】在配置微信开发者工具路径中,浏览找不到桌面微信开发者工具文件。但是其他开发者工具路径能正常找到。
HBuilderX版本号:3.3.12alpha和标准版都一样
开发环境是 Windows.7旗舰版