HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

跪求:HBuilder mac版 8.1.3左右版本

最近因公司新项目需要,要求HBuilder必须是8.1.3.20170513左右的版本,谁有,跪求呀,急!
哪会小伙伴有,可以发我邮箱,谢谢~
908026301@qq.com

最近因公司新项目需要,要求HBuilder必须是8.1.3.20170513左右的版本,谁有,跪求呀,急!
哪会小伙伴有,可以发我邮箱,谢谢~
908026301@qq.com

父页面加载子页面,需要在父页面中动态创建子页面,然后在子页面加载完之后,显示子页面页面

//父页面中填写如下代码
$.plusReady(function() {

            //动态添加子页面,子页面加载事件完成之后,在show父页面  
            var mainView=plus.webview.currentWebview();  
            var subView=plus.webview.create("goodsList.html","sub",{  
                top:'258px',  
                bottom:0  
            })  
            mainView.append(subView);  
            subView.addEventListener("loaded",function(){  
                subView.show();  
            });  

});

继续阅读 »

//父页面中填写如下代码
$.plusReady(function() {

            //动态添加子页面,子页面加载事件完成之后,在show父页面  
            var mainView=plus.webview.currentWebview();  
            var subView=plus.webview.create("goodsList.html","sub",{  
                top:'258px',  
                bottom:0  
            })  
            mainView.append(subView);  
            subView.addEventListener("loaded",function(){  
                subView.show();  
            });  

});

收起阅读 »

基于Mui的Vue组件库

UI Vue mui

vue-awesome-mui

Design Mui library for Vuejs 2.0

Links

Install

Install vue-awesome-mui

npm install vue-awesome-mui -save

Get Started

Vue mount

// import or require  
import Vue from 'vue'  
import Mui from 'vue-awesome-mui'  
import 'vue-awesome-mui/mui/dist/css/mui.css'  
// mount with global  
Vue.use(Mui)

If you need icon, you can require icon.css

import "vue-awesome-mui/mui/examples/hello-mui/css/icons-extra.css";

Example

Give a few examples

折叠面板 Accordion

操作表 Actionsheet

数字角标 Badges

按钮 Buttons

Browser Support

  • IE 10+
  • Andorid 4.4+
  • IOS 7+

Changelog

Detailed changes for each release are documented in the release notes.

Contribution

Please make sure to read the Contributing Guide before making a pull request.

Dependencies

Licence

vue-awesome-mui is open source and released under the MIT Licence.

Copyright (c) 2017 Wscats

About author

继续阅读 »

vue-awesome-mui

Design Mui library for Vuejs 2.0

Links

Install

Install vue-awesome-mui

npm install vue-awesome-mui -save

Get Started

Vue mount

// import or require  
import Vue from 'vue'  
import Mui from 'vue-awesome-mui'  
import 'vue-awesome-mui/mui/dist/css/mui.css'  
// mount with global  
Vue.use(Mui)

If you need icon, you can require icon.css

import "vue-awesome-mui/mui/examples/hello-mui/css/icons-extra.css";

Example

Give a few examples

折叠面板 Accordion

操作表 Actionsheet

数字角标 Badges

按钮 Buttons

Browser Support

  • IE 10+
  • Andorid 4.4+
  • IOS 7+

Changelog

Detailed changes for each release are documented in the release notes.

Contribution

Please make sure to read the Contributing Guide before making a pull request.

Dependencies

Licence

vue-awesome-mui is open source and released under the MIT Licence.

Copyright (c) 2017 Wscats

About author

收起阅读 »

有问必答,小问题无偿 大问题有偿

外包

有问必答,小问题简单问题免费解决 大问题复杂问题有偿解决(望理解) 承接开发各种第三方插件 app 项目 及 离线打包指导等等。 需要联系 qq : 37894663

有问必答,小问题简单问题免费解决 大问题复杂问题有偿解决(望理解) 承接开发各种第三方插件 app 项目 及 离线打包指导等等。 需要联系 qq : 37894663

完整demo 分享插件

在实际工作中遇到了分享到其他app的需求,然后就在5+的基础上封装了一下,方便自己使用,有需要的同学可以拿去用。

示例代码

打开该链接有效果图,可以看一下是不是想要的。

继续阅读 »

在实际工作中遇到了分享到其他app的需求,然后就在5+的基础上封装了一下,方便自己使用,有需要的同学可以拿去用。

示例代码

打开该链接有效果图,可以看一下是不是想要的。

收起阅读 »

踩到的Cannot call method 'addEventListener' of null坑

最近遇到一个坑爹的问题,如下:

<button class="mui-btn" id="test ">选择照片</button>  

document.getElementById("test")  
            .addEventListener('tap', function() {  
                console.log('t');  
            });

代码很简单有木有!但是却总是报Uncaught TypeError: Cannot call method 'addEventListener' of null错误,跑遍了文档社区。
有的说:
这是因为js加载到 document.getElementById('main').addEventListener这行代码时,下方的dom节点尚未生成,故document.getElementById('main')返回为空;
解决方案有两种;
方案1:放入mui.ready中
方案2:将如上js代码放到</body>节点之后;
结果却没有解决问题。
后面终于找到了问题所在。<button class="mui-btn" id="test ">选择照片</button>中的id=“test”后面多了一个空格!这是自动格式化搞的鬼
删除多余空格,问题解决。

继续阅读 »

最近遇到一个坑爹的问题,如下:

<button class="mui-btn" id="test ">选择照片</button>  

document.getElementById("test")  
            .addEventListener('tap', function() {  
                console.log('t');  
            });

代码很简单有木有!但是却总是报Uncaught TypeError: Cannot call method 'addEventListener' of null错误,跑遍了文档社区。
有的说:
这是因为js加载到 document.getElementById('main').addEventListener这行代码时,下方的dom节点尚未生成,故document.getElementById('main')返回为空;
解决方案有两种;
方案1:放入mui.ready中
方案2:将如上js代码放到</body>节点之后;
结果却没有解决问题。
后面终于找到了问题所在。<button class="mui-btn" id="test ">选择照片</button>中的id=“test”后面多了一个空格!这是自动格式化搞的鬼
删除多余空格,问题解决。

收起阅读 »

完整demo 数字软键盘

软键盘

工作中弄了一个仿支付宝的数字软键盘,有需要的同学可以运行一下这个代码,可以拿去用。

示例代码

打开该链接有效果图,可以看一下是不是想要的。

继续阅读 »

工作中弄了一个仿支付宝的数字软键盘,有需要的同学可以运行一下这个代码,可以拿去用。

示例代码

打开该链接有效果图,可以看一下是不是想要的。

收起阅读 »

完整demo 上传头像

因为没有用canvas所以并不会有图片旋转的问题。

在实际工作中遇到了上传头像的需求,刚开始做的时候发现社区里面都是零散的代码,都是在说原理的没有一个完整的功能,然后就自己写了这个功能和大家分享一下,下载下来放hbuilder里面运行就能看到效果了,有需要的可以拿去用。

示例代码

打开该链接有效果图,可以看一下是不是想要的。

继续阅读 »

因为没有用canvas所以并不会有图片旋转的问题。

在实际工作中遇到了上传头像的需求,刚开始做的时候发现社区里面都是零散的代码,都是在说原理的没有一个完整的功能,然后就自己写了这个功能和大家分享一下,下载下来放hbuilder里面运行就能看到效果了,有需要的可以拿去用。

示例代码

打开该链接有效果图,可以看一下是不是想要的。

收起阅读 »

承接各种APP开发,插件集成及离线打包等业务 qq:37894663

外包

承接各种APP开发,插件集成及离线打包等业务 qq:37894663

承接各种APP开发,插件集成及离线打包等业务 qq:37894663

【交流分享】原生js实现下拉刷新上拉加载,一套代码多端运行.经典APP案例,支持vue,流应用,兼容手机及PC浏览器

源码 技术分享 mescroll 原生js 上拉加载 下拉刷新

8月伊始,好东西与大家一起分享~

好久没有写东西了,这大半年都在忙公司的项目.永远也弄不完的需求; APP做好了,新的需求要把APP搬到微信端, 微信端好不容易改好了, 还要做一个版本发到PC官网; PC官网弄好了,接下来还得研究一下小程序,小程序还没整明白,新来的产品说要用vue优化一下项目~~(>_<)~~
挺感谢HBuilder提供的平台,让APP大部分代码能够迁移到其他平台;省了不少功夫;
然后有些组件就不好弄了,比如双webview的下拉刷新,上拉加载; 如果涉及到菜单切换,或者要刷新父webview的情况就比较复杂了;APP一套代码,微信端也弄一套,维护起来比较麻烦;
于是抽空用原生js实现了下拉刷新上拉加载,完美运用于android,ios,兼容手机及PC主流浏览器,一套代码多端运行.支持vue,流应用,

mescroll -- 精致的下拉刷新和上拉加载js框架 (JS framework for pull-refresh and pull-up-loading)

功能亮点 :
1.自动判断和提示列表无任何数据或无更多数据
2.支持监听列表滚动事件,无需手动判断处理列表的页码,时间等变量
3.可指定列表滚动到任何位置,附带平滑效果一键滚动到顶部或底部
4.可配置列表数据不满屏时,自动加载下一页
5.一个界面可支持多个下拉刷新,上拉加载
6.可临时锁定下拉刷新和上拉加载
7......

先看看
mescroll主流APP案例:

【仿淘宝 v6.8.0】APP的下拉刷新上拉加载

【仿京东 v6.1.0】APP的下拉刷新上拉加载

【仿贝贝 v6.0.0】APP的下拉刷新上拉加载

【仿新浪微博 v7.6.1】APP的下拉刷新上拉加载

【雅布力 v2.4.0】APP的下拉刷新上拉加载

快速入门 :

1 引用 mescroll.min.css , mescroll.min.js

2 拷贝以下布局结构:

<div id="mescroll" class="mescroll">  
       //列表内容,如:<ul>列表数据</ul> ...  
</div>  

3 创建MeScroll对象:

var mescroll = new MeScroll("mescroll", {  
            down: {  
            callback: downCallback //下拉刷新的回调  
        },  
        up: {  
            callback: upCallback //上拉加载回调,简写callback:function(page){upCallback(page);}  
        }  
    });

4 处理回调:

 //下拉刷新的回调  
        function downCallback(){  
            $.ajax({  
                url: 'xxxxxx',  
                success: function(data){  
                    //联网成功的回调,隐藏下拉刷新的状态;  
                mescroll.endSuccess();//无参  
                //设置数据  
                //setXxxx(data);//自行实现 TODO  
               },  
               error: function(data){  
                    //联网失败的回调,隐藏下拉刷新的状态  
                    mescroll.endErr();  
                }  
            });  
        }  

        //上拉加载的回调 page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数  
        function upCallback(page){  
            $.ajax({  
                url: 'xxxxxx?num='+ page.num +"&size="+ page.size,  
                success: function(data){  
            //联网成功的回调,隐藏下拉刷新和上拉加载的状态;  
            //参数data.length:当前页的数据总数  
            //mescroll会根据data.length自动判断列表如果无任何数据,则提示空,显示empty配置的内容;  
            //列表如果无下一页数据,则提示无更多数据;  
            //如果不传data.length,则仅隐藏下拉刷新和上拉加载的状态.例如downCallback  
                    mescroll.endSuccess(data.length);  
                //设置列表数据  
                //setListData(data);//自行实现 TODO  
                },  
                error: function(data){  
                    //联网失败的回调,隐藏下拉刷新和上拉加载的状态  
                    mescroll.endErr();  
                }  
         });  
        }

以上为mescroll最基本的用法,强烈建议您下载并查看 mescroll基础案例 , 发现mescroll更强大的功能 ~

基础案例一共5个, 每个案例3分钟, 一共花您15分钟;
这15分钟您将了解mescroll在不同情况下应如何快速配置 ~

磨刀不误砍柴工,心急吃不了热豆腐. 请静下心来体验与理解mescroll, 一定会让您事半功倍 ~

mescroll文档及案例:
https://github.com/mescroll/mescroll

8月伊始,好东西与大家一起分享,

如使用中有任何问题,可发帖提问@我; 或者发私信;
提问前最好能提供重现问题的案例~O(∩_∩)O谢谢

继续阅读 »

8月伊始,好东西与大家一起分享~

好久没有写东西了,这大半年都在忙公司的项目.永远也弄不完的需求; APP做好了,新的需求要把APP搬到微信端, 微信端好不容易改好了, 还要做一个版本发到PC官网; PC官网弄好了,接下来还得研究一下小程序,小程序还没整明白,新来的产品说要用vue优化一下项目~~(>_<)~~
挺感谢HBuilder提供的平台,让APP大部分代码能够迁移到其他平台;省了不少功夫;
然后有些组件就不好弄了,比如双webview的下拉刷新,上拉加载; 如果涉及到菜单切换,或者要刷新父webview的情况就比较复杂了;APP一套代码,微信端也弄一套,维护起来比较麻烦;
于是抽空用原生js实现了下拉刷新上拉加载,完美运用于android,ios,兼容手机及PC主流浏览器,一套代码多端运行.支持vue,流应用,

mescroll -- 精致的下拉刷新和上拉加载js框架 (JS framework for pull-refresh and pull-up-loading)

功能亮点 :
1.自动判断和提示列表无任何数据或无更多数据
2.支持监听列表滚动事件,无需手动判断处理列表的页码,时间等变量
3.可指定列表滚动到任何位置,附带平滑效果一键滚动到顶部或底部
4.可配置列表数据不满屏时,自动加载下一页
5.一个界面可支持多个下拉刷新,上拉加载
6.可临时锁定下拉刷新和上拉加载
7......

先看看
mescroll主流APP案例:

【仿淘宝 v6.8.0】APP的下拉刷新上拉加载

【仿京东 v6.1.0】APP的下拉刷新上拉加载

【仿贝贝 v6.0.0】APP的下拉刷新上拉加载

【仿新浪微博 v7.6.1】APP的下拉刷新上拉加载

【雅布力 v2.4.0】APP的下拉刷新上拉加载

快速入门 :

1 引用 mescroll.min.css , mescroll.min.js

2 拷贝以下布局结构:

<div id="mescroll" class="mescroll">  
       //列表内容,如:<ul>列表数据</ul> ...  
</div>  

3 创建MeScroll对象:

var mescroll = new MeScroll("mescroll", {  
            down: {  
            callback: downCallback //下拉刷新的回调  
        },  
        up: {  
            callback: upCallback //上拉加载回调,简写callback:function(page){upCallback(page);}  
        }  
    });

4 处理回调:

 //下拉刷新的回调  
        function downCallback(){  
            $.ajax({  
                url: 'xxxxxx',  
                success: function(data){  
                    //联网成功的回调,隐藏下拉刷新的状态;  
                mescroll.endSuccess();//无参  
                //设置数据  
                //setXxxx(data);//自行实现 TODO  
               },  
               error: function(data){  
                    //联网失败的回调,隐藏下拉刷新的状态  
                    mescroll.endErr();  
                }  
            });  
        }  

        //上拉加载的回调 page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数  
        function upCallback(page){  
            $.ajax({  
                url: 'xxxxxx?num='+ page.num +"&size="+ page.size,  
                success: function(data){  
            //联网成功的回调,隐藏下拉刷新和上拉加载的状态;  
            //参数data.length:当前页的数据总数  
            //mescroll会根据data.length自动判断列表如果无任何数据,则提示空,显示empty配置的内容;  
            //列表如果无下一页数据,则提示无更多数据;  
            //如果不传data.length,则仅隐藏下拉刷新和上拉加载的状态.例如downCallback  
                    mescroll.endSuccess(data.length);  
                //设置列表数据  
                //setListData(data);//自行实现 TODO  
                },  
                error: function(data){  
                    //联网失败的回调,隐藏下拉刷新和上拉加载的状态  
                    mescroll.endErr();  
                }  
         });  
        }

以上为mescroll最基本的用法,强烈建议您下载并查看 mescroll基础案例 , 发现mescroll更强大的功能 ~

基础案例一共5个, 每个案例3分钟, 一共花您15分钟;
这15分钟您将了解mescroll在不同情况下应如何快速配置 ~

磨刀不误砍柴工,心急吃不了热豆腐. 请静下心来体验与理解mescroll, 一定会让您事半功倍 ~

mescroll文档及案例:
https://github.com/mescroll/mescroll

8月伊始,好东西与大家一起分享,

如使用中有任何问题,可发帖提问@我; 或者发私信;
提问前最好能提供重现问题的案例~O(∩_∩)O谢谢

收起阅读 »

Android获取Wifi名称

mui Native.JS
    getWifiName = function() {  
        if(mui.os.android) {  
            var wifiManager, wifiInfo;  
            var Context = plus.android.importClass("android.content.Context");  
            var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
            var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");  
            wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
            wifiInfo = wifiManager.getConnectionInfo();  
            var ssid = wifiInfo.getSSID() || '';  
            if(ssid.length == 0) {  
                return null;  
            }  
            //一些手机上获取SSID是有值的,但是实际IP为空,真实为未连接  
            var i = parseInt(wifiInfo.getIpAddress());  
            var ipStr = (i & 0xFF) + "." +  
                ((i >> 8) & 0xFF) + "." +  
                ((i >> 16) & 0xFF) + "." +  
                (i >> 24 & 0xFF);  
            if(ipStr == "0.0.0.0") {  
                return null;  
            }  

            if(ssid != "<unknown ssid>" && ssid.toUpperCase() != "0X") {  
                return ssid.replace(/\"/g, "");  
            }  
            return null;  
        }  
        return null;  
    };
继续阅读 »
    getWifiName = function() {  
        if(mui.os.android) {  
            var wifiManager, wifiInfo;  
            var Context = plus.android.importClass("android.content.Context");  
            var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
            var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");  
            wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
            wifiInfo = wifiManager.getConnectionInfo();  
            var ssid = wifiInfo.getSSID() || '';  
            if(ssid.length == 0) {  
                return null;  
            }  
            //一些手机上获取SSID是有值的,但是实际IP为空,真实为未连接  
            var i = parseInt(wifiInfo.getIpAddress());  
            var ipStr = (i & 0xFF) + "." +  
                ((i >> 8) & 0xFF) + "." +  
                ((i >> 16) & 0xFF) + "." +  
                (i >> 24 & 0xFF);  
            if(ipStr == "0.0.0.0") {  
                return null;  
            }  

            if(ssid != "<unknown ssid>" && ssid.toUpperCase() != "0X") {  
                return ssid.replace(/\"/g, "");  
            }  
            return null;  
        }  
        return null;  
    };
收起阅读 »