HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uniapp开发需求

uni_app项目

现外包一个uniapp开发需求,请有能力的朋友私聊。需求如下:
开发要求:用uniapp开发,需打包成安卓和IOS两个版本APP
APP使用设备:在ipad上使用
页面参考原型:https://1peup3.axshare.com/#id=que1ss&p=%E5%B9%B3%E5%8F%B0%E6%A6%82%E5%86%B5&g=1
原型仅供参考,与实际开发完成的网页版页面差不了多少,最终开发需按照网页版页面来,即将网页版尺寸缩小为ipad尺寸。
工期:一个月内
具体事宜,QQ私聊:339571330

继续阅读 »

现外包一个uniapp开发需求,请有能力的朋友私聊。需求如下:
开发要求:用uniapp开发,需打包成安卓和IOS两个版本APP
APP使用设备:在ipad上使用
页面参考原型:https://1peup3.axshare.com/#id=que1ss&p=%E5%B9%B3%E5%8F%B0%E6%A6%82%E5%86%B5&g=1
原型仅供参考,与实际开发完成的网页版页面差不了多少,最终开发需按照网页版页面来,即将网页版尺寸缩小为ipad尺寸。
工期:一个月内
具体事宜,QQ私聊:339571330

收起阅读 »

uni.createLivePusherContext缺少‘orientation’,‘device-position’等接口

LivePusher直播推流插件配置

uni的推流接口比微信小程序的推流接口少了很多推流的接口
默认摄像头无法设置, 画面方向无法设置等等
https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html

uni的推流接口比微信小程序的推流接口少了很多推流的接口
默认摄像头无法设置, 画面方向无法设置等等
https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html

uniapp怎么监听深色模式

如题,有大神研究的吗

如果是深色模式,我要匹配我的深色style

如题,有大神研究的吗

如果是深色模式,我要匹配我的深色style

uniapp app内微信支付和支付宝支付 前端部分

支付

由于文档中写的不清楚,所以走了些弯路,记录下来
前端所要做的就是

  1. 请求后端接口,获取到orderinfo

  2. 调用支付API uni.requestPayment

  3. 处理回调

主要就是orderinfo格式文档写的不够清楚,这里进行说明orderinfo完全是后端返回的,前端不做任何处理,所以orderinfo有问题推给后端,前端不用浪费时间, app的支付不管ios还是android都是string类型

微信orderinfo格式   
 "{\"appid\":\"xxxxxxxx\",\"partnerid\":\"xxxxxxx\",\"prepayid\":\"xxxxxxxxxxxxxxxx\",\"timestamp\":\"1579779903\",\"noncestr\":\"xxxxxxx\",\"package\":\"Sign": "WXPay\",\"sign\":\"xxxxxxxxxxxxxxxxxxxx\"}"  

支付宝orderinfo格式  
app_id=xxxxxxxxx&method=xxxxxxxxxx&format=JSON&charset=UTF-8&sign_type=RSA2&version=1.0&return_url=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&notify_url=xxxxx&timestamp=xxxxxx&sign=xxxxxxx&biz_content=xxxxxxxxxx
uni.requestPayment({  
    provider: 'alipay',  
    orderInfo: '后端返回的orderinfo字符串',  
    success: res => {  
        // 进入此回调说明支付成功  
    },  
    fail: err => {  
        const message = err.errMsg || '';  
        if (message.indexOf('[payment支付宝:62001]') !== -1) {  
            uni.showModal({  
                content: '您已取消支付。如有需要,您可在我的订单里重新付款。30分钟内有效。',  
                showCancel: false  
            });  
        } else {  
            uni.showModal({  
                content: '支付失败,原因为: ' + message,  
                showCancel: false  
            });  
        }  
    },  
    complete: () => {  
        this.submitting = false;  
        }  
    });
继续阅读 »

由于文档中写的不清楚,所以走了些弯路,记录下来
前端所要做的就是

  1. 请求后端接口,获取到orderinfo

  2. 调用支付API uni.requestPayment

  3. 处理回调

主要就是orderinfo格式文档写的不够清楚,这里进行说明orderinfo完全是后端返回的,前端不做任何处理,所以orderinfo有问题推给后端,前端不用浪费时间, app的支付不管ios还是android都是string类型

微信orderinfo格式   
 "{\"appid\":\"xxxxxxxx\",\"partnerid\":\"xxxxxxx\",\"prepayid\":\"xxxxxxxxxxxxxxxx\",\"timestamp\":\"1579779903\",\"noncestr\":\"xxxxxxx\",\"package\":\"Sign": "WXPay\",\"sign\":\"xxxxxxxxxxxxxxxxxxxx\"}"  

支付宝orderinfo格式  
app_id=xxxxxxxxx&method=xxxxxxxxxx&format=JSON&charset=UTF-8&sign_type=RSA2&version=1.0&return_url=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&notify_url=xxxxx&timestamp=xxxxxx&sign=xxxxxxx&biz_content=xxxxxxxxxx
uni.requestPayment({  
    provider: 'alipay',  
    orderInfo: '后端返回的orderinfo字符串',  
    success: res => {  
        // 进入此回调说明支付成功  
    },  
    fail: err => {  
        const message = err.errMsg || '';  
        if (message.indexOf('[payment支付宝:62001]') !== -1) {  
            uni.showModal({  
                content: '您已取消支付。如有需要,您可在我的订单里重新付款。30分钟内有效。',  
                showCancel: false  
            });  
        } else {  
            uni.showModal({  
                content: '支付失败,原因为: ' + message,  
                showCancel: false  
            });  
        }  
    },  
    complete: () => {  
        this.submitting = false;  
        }  
    });
收起阅读 »

wkwebview下彻底解决ajax跨域问题

ajax WKWebview 跨域

尽管官方提供plus.net.XMLHttpRequest口口声声说是支持跨域,但实际上本地跨域却不支持,很是扯蛋。

本地跨域是指加载本地file://开头(即file协议)文件,比如用ajax请求本地html或json文件,在ios的uiwebview没问题,但在wkwebview下,即使用plus.net.XMLHttpRequest也不行,这里想到方法是自己写一个XMLHttpRequest,核心是利用plus.io.resolveLocalFileSystemURL来实现。修改一下你的程序启动代码,引入这个自定义的XMLHttpRequest文件,然后在plus初始化相关代码里加入以下代码:

    var oxhr = jQuery.ajaxSettings.xhr;  
    var plusXhr = function() {  
         try {  
            return new plus.net.XMLHttpRequest();  
        } catch ( e ) {}  
    };  

    var myXhr = function() {  
        try {  
            return new MyXmlHttpRequest();  
        } catch ( e ) {}  
    };  

    jQuery.ajaxSettings.xhr = plusXhr; //默认使用plus的XMLHttpRequest  

    var _ajax = $.ajax;  
    $.ajax = function(url, options) {//重写ajax方法  
        var urlx = url;  
        if (typeof url === 'object' && url !== null) {  
            urlx = url.url;  
        }  

        if (urlx.indexOf('http') !== 0) {  
            jQuery.ajaxSettings.xhr = myXhr; //本地文件,file协议或相对路径时使用本地xhr  
        } else {  
           jQuery.ajaxSettings.xhr = plusXhr; //还原成plus自带的  
       }  
        return _ajax(url, options);  
    }

【注】以上是jquery示例,如果是mui、uni-app请根据具体情况参照修改。

附件更新:2020.02.05

继续阅读 »

尽管官方提供plus.net.XMLHttpRequest口口声声说是支持跨域,但实际上本地跨域却不支持,很是扯蛋。

本地跨域是指加载本地file://开头(即file协议)文件,比如用ajax请求本地html或json文件,在ios的uiwebview没问题,但在wkwebview下,即使用plus.net.XMLHttpRequest也不行,这里想到方法是自己写一个XMLHttpRequest,核心是利用plus.io.resolveLocalFileSystemURL来实现。修改一下你的程序启动代码,引入这个自定义的XMLHttpRequest文件,然后在plus初始化相关代码里加入以下代码:

    var oxhr = jQuery.ajaxSettings.xhr;  
    var plusXhr = function() {  
         try {  
            return new plus.net.XMLHttpRequest();  
        } catch ( e ) {}  
    };  

    var myXhr = function() {  
        try {  
            return new MyXmlHttpRequest();  
        } catch ( e ) {}  
    };  

    jQuery.ajaxSettings.xhr = plusXhr; //默认使用plus的XMLHttpRequest  

    var _ajax = $.ajax;  
    $.ajax = function(url, options) {//重写ajax方法  
        var urlx = url;  
        if (typeof url === 'object' && url !== null) {  
            urlx = url.url;  
        }  

        if (urlx.indexOf('http') !== 0) {  
            jQuery.ajaxSettings.xhr = myXhr; //本地文件,file协议或相对路径时使用本地xhr  
        } else {  
           jQuery.ajaxSettings.xhr = plusXhr; //还原成plus自带的  
       }  
        return _ajax(url, options);  
    }

【注】以上是jquery示例,如果是mui、uni-app请根据具体情况参照修改。

附件更新:2020.02.05

收起阅读 »

多级联动发布

自定义组件

uniapp实现多级联动组件

picker实现多级联动:

  1. 1.可以实现多级联动
  2. 2.每一级联动选择一项,后边的都要重新选择

uniapp实现多级联动组件

picker实现多级联动:

  1. 1.可以实现多级联动
  2. 2.每一级联动选择一项,后边的都要重新选择

for循环生成的元素无法获取到ref

本人最近使用bindingX写动画,需要使用ref来绑定元素。
本来普通的view里ref='aaa'这样在使用时候很顺手,this.$refs.name.ref就可以拿到;
后来意识到需要数据渲染,for循环后突然报错了,undefined,最后找到问题竟然在this.$refs.name拿到的竟然是类似html的标签,this.$refs里对应的name下与打印出来的东西不一致,导致我很困惑,为什么如此之不一致。
就在我蒙了三天之后,我就想打印一下this.$refs.name的字符串,this.$refs.name[0]竟然不报错,
最后,完美解决。this.$refs.name[0].ref就可以拿到之前的东西。

后来,偶然看到了这个,当然会vue的大神们不要嘲笑,这篇就是为了分享给那些同我一样,没有vue开发经验硬写app的彩笔们。

继续阅读 »

本人最近使用bindingX写动画,需要使用ref来绑定元素。
本来普通的view里ref='aaa'这样在使用时候很顺手,this.$refs.name.ref就可以拿到;
后来意识到需要数据渲染,for循环后突然报错了,undefined,最后找到问题竟然在this.$refs.name拿到的竟然是类似html的标签,this.$refs里对应的name下与打印出来的东西不一致,导致我很困惑,为什么如此之不一致。
就在我蒙了三天之后,我就想打印一下this.$refs.name的字符串,this.$refs.name[0]竟然不报错,
最后,完美解决。this.$refs.name[0].ref就可以拿到之前的东西。

后来,偶然看到了这个,当然会vue的大神们不要嘲笑,这篇就是为了分享给那些同我一样,没有vue开发经验硬写app的彩笔们。

收起阅读 »

请教一个技术支持(外包)的问题

外包

各位开发者大神,我使用标准H5开发网站,并使用HBUILDER进行了打包,安卓APP是没有问题,用的挺好。
之前注册了苹果的开发者,使用证书打包,上传平台,苹果审核4.2,APP太简单,没有原生功能,没有通过审核。
现在我想请教
1.基于我现有的网站构架,加一些原生功能,适当丰富一下APP(其实主要是为了IOS过审)。

  1. 有没有相关的外包机构可以帮忙做,大约多少钱
    谢谢各位了
继续阅读 »

各位开发者大神,我使用标准H5开发网站,并使用HBUILDER进行了打包,安卓APP是没有问题,用的挺好。
之前注册了苹果的开发者,使用证书打包,上传平台,苹果审核4.2,APP太简单,没有原生功能,没有通过审核。
现在我想请教
1.基于我现有的网站构架,加一些原生功能,适当丰富一下APP(其实主要是为了IOS过审)。

  1. 有没有相关的外包机构可以帮忙做,大约多少钱
    谢谢各位了
收起阅读 »

android 插件 新增 activity

因需要自定义UI界面,在此记录,供遇到同样问题的伙伴作参考:

第1步:MyModule extends WXSDKEngine.DestroyableModule

第2步:Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class); mActivity.startActivityForResult(intent, 100);

第3步:MyActivity extends Activity;此处切记继承Activity,不能继承其它扩展的activity,否则会导致界面不展示,程序异常

第4步:在androidmanifest.xml添加权限,添加MyActivity节点

第5步:打成aar包发布

继续阅读 »

因需要自定义UI界面,在此记录,供遇到同样问题的伙伴作参考:

第1步:MyModule extends WXSDKEngine.DestroyableModule

第2步:Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class); mActivity.startActivityForResult(intent, 100);

第3步:MyActivity extends Activity;此处切记继承Activity,不能继承其它扩展的activity,否则会导致界面不展示,程序异常

第4步:在androidmanifest.xml添加权限,添加MyActivity节点

第5步:打成aar包发布

收起阅读 »

建议功能 alt + 单击‘自定义组件’标签。可以直接打开自定义组件的页面;

建议功能 alt + 单击‘自定义组件’标签。可以直接打开自定义组件的页面;类似PhpStorm alt +单击 类名称 时跳转到类的页面方便编辑

补充录屏 https://bug666.oss-cn-hangzhou.aliyuncs.com/%E6%9E%97%E4%B8%BE%EF%BD%9E%E5%85%A8%E6%A0%88APP%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88%202020-01-01%2019.51.16.mp4

继续阅读 »

建议功能 alt + 单击‘自定义组件’标签。可以直接打开自定义组件的页面;类似PhpStorm alt +单击 类名称 时跳转到类的页面方便编辑

补充录屏 https://bug666.oss-cn-hangzhou.aliyuncs.com/%E6%9E%97%E4%B8%BE%EF%BD%9E%E5%85%A8%E6%A0%88APP%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88%202020-01-01%2019.51.16.mp4

收起阅读 »

uni.navigateBack()返回时传递参数,最简单的办法!

页面传值

假如从B页面返回A页面:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.setData({
mdata:1
})
经过测试,在uni.app中使用B页面使用setData设置A页面参数无法实现(应该是被更改为常量属性了)。
打印console.log(prevPage)前一页面对象可得:

方法1:我们可以使用A页面原有方法
onHide: ƒ ()
onLoad: ƒ ()
onReady: ƒ ()
onResize: ƒ ()
onRouteEnd: ƒ ()
onShow: ƒ ()
onUnload: ƒ ()
options
......等传递参数。
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.onShow(object);
uni.navigateBack();
A页面接收参数:
onShow(object){
if(!!object){
console.log(object)
}
}

方法2:A页面自定义方法接收参数
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.$vm.otherFun(object);//重点$vm
uni.navigateBack();
A页面接收参数:
otherFun(object){
if(!!object){
console.log(object)
}
}

继续阅读 »

假如从B页面返回A页面:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.setData({
mdata:1
})
经过测试,在uni.app中使用B页面使用setData设置A页面参数无法实现(应该是被更改为常量属性了)。
打印console.log(prevPage)前一页面对象可得:

方法1:我们可以使用A页面原有方法
onHide: ƒ ()
onLoad: ƒ ()
onReady: ƒ ()
onResize: ƒ ()
onRouteEnd: ƒ ()
onShow: ƒ ()
onUnload: ƒ ()
options
......等传递参数。
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.onShow(object);
uni.navigateBack();
A页面接收参数:
onShow(object){
if(!!object){
console.log(object)
}
}

方法2:A页面自定义方法接收参数
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.$vm.otherFun(object);//重点$vm
uni.navigateBack();
A页面接收参数:
otherFun(object){
if(!!object){
console.log(object)
}
}

收起阅读 »

UNI利用vue-cli安装的项目sass报错的问题

sass vue_cli uniapp

UNI利用vue-cli安装的项目sass报错的问题,可以手动修改sass-loader的版本为"sass-loader": "^7.3.0",;cli安装的是最新版的会报错SassError: Invalid argument(s): Unsupported output style "nested".

继续阅读 »

UNI利用vue-cli安装的项目sass报错的问题,可以手动修改sass-loader的版本为"sass-loader": "^7.3.0",;cli安装的是最新版的会报错SassError: Invalid argument(s): Unsupported output style "nested".

收起阅读 »