1.Ajax-get请求

  1. // get测试请求地址 http://test.dongyixueyuan.com/link_app/get?state=index&num=0
  2. mui.get('接口地址',{ //请求接口地址
  3. state:'index' // 参数 键 :值
  4. num:'0'
  5. },function(data){ // data为服务器端返回数据
  6. //获得服务器响应 ...
  7. console.log(data);
  8. },'json'
  9. );

2.Ajax-post请求

  1. // post测试请求地址 http://test.dongyixueyuan.com/link_app/post
  2. mui.post('接口地址',{ //请求接口地址
  3. state:'index', // 参数 键 :值
  4. num:'0'
  5. },
  6. function(data){ //data为服务器端返回数据
  7. //自己的逻辑
  8. },'json'
  9. );

3.照相机

  1. var cmr = plus.camera.getCamera();
  2. cmr.captureImage( function ( p ) {
  3. //成功
  4. plus.io.resolveLocalFileSystemURL( p, function ( entry ) {
  5. var img_name = entry.name;//获得图片名称
  6. var img_path = entry.toLocalURL();//获得图片路径
  7. }, function ( e ) {
  8. console.log( "读取拍照文件错误:"+e.message );
  9. } );
  10. }, function ( e ) {
  11. console.log( "失败:"+e.message );
  12. }, {filename:'_doc/camera/',index:1} ); // “_doc/camera/“ 为保存文件名

4.访问相册

  1. plus.gallery.pick( function(path){
  2. img.src = path;//获得图片路径
  3. }, function ( e ) {
  4. console.log( "取消选择图片" );
  5. }, {filter:"image"} );

5.蜂鸣提示音

  1. switch ( plus.os.name ) { //判断设备类型
  2. case "iOS":
  3. if ( plus.device.model.indexOf("iPhone") >= 0 ) { //判断是否为iPhone
  4. plus.device.beep();
  5. console.log = "设备蜂鸣中...";
  6. } else {
  7. console.log = "此设备不支持蜂鸣";
  8. }
  9. break;
  10. default:
  11. plus.device.beep();
  12. console.log = "设备蜂鸣中...";
  13. break;
  14. }

6.手机震动

  1. switch ( plus.os.name ) { //判断设备类型
  2. case "iOS":
  3. if ( plus.device.model.indexOf("iPhone") >= 0 ) { //判断是否为iPhone
  4. plus.device.vibrate();
  5. console.log("设备振动中...");
  6. } else {
  7. console.log("此设备不支持振动");
  8. }
  9. break;
  10. default:
  11. plus.device.vibrate();
  12. console.log("设备振动中...");
  13. break;
  14. }

7.弹出菜单

弹出菜单的原理主要是通过锚点进行的,如果需要多个弹出菜单,可以在a标签内设置锚点,对应相应的div的id即可

  1. <a href="#popover">打开弹出菜单</a> // href 定义锚点
  2. <div id="popover" class="mui-popover"> //id 对应锚点
  3. <ul class="mui-table-view">
  4. <li class="mui-table-view-cell"><a href="#">Item1</a></li>
  5. <li class="mui-table-view-cell"><a href="#">Item2</a></li>
  6. <li class="mui-table-view-cell"><a href="#">Item3</a></li>
  7. <li class="mui-table-view-cell"><a href="#">Item4</a></li>
  8. <li class="mui-table-view-cell"><a href="#">Item5</a></li>
  9. </ul>
  10. </div>

8.设备信息

  1. plus.device.model //设备型号
  2. plus.device.vendor //设备的生产厂商
  3. plus.device.imei // IMEI 设备的国际移动设备身份码
  4. plus.device.uuid // UUID 设备的唯一标识
  5. // IMSI 设备的国际移动用户识别码
  6. var str = '';
  7. for ( i=0; i<plus.device.imsi.length; i++ ) {
  8. str += plus.device.imsi[i];
  9. }
  10. plus.screen.resolutionWidth*plus.screen.scale + " x " + plus.screen.resolutionHeight*plus.screen.scale ;
  11. //屏幕分辨率
  12. plus.screen.dpiX + " x " + plus.screen.dpiY; //DPI每英寸像素数

9.手机信息

  1. plus.os.name //名称
  2. plus.os.version //版本
  3. plus.os.language //语言
  4. plus.os.vendor //厂商
  5. //网络类型
  6. var types = {};
  7. types[plus.networkinfo.CONNECTION_UNKNOW] = "未知";
  8. types[plus.networkinfo.CONNECTION_NONE] = "未连接网络";
  9. types[plus.networkinfo.CONNECTION_ETHERNET] = "有线网络";
  10. types[plus.networkinfo.CONNECTION_WIFI] = "WiFi网络";
  11. types[plus.networkinfo.CONNECTION_CELL2G] = "2G蜂窝网络";
  12. types[plus.networkinfo.CONNECTION_CELL3G] = "3G蜂窝网络";
  13. types[plus.networkinfo.CONNECTION_CELL4G] = "4G蜂窝网络";
  14. var network = types[plus.networkinfo.getCurrentType()]; 

10.发送短信

  1. <a href=“sms:10086">发送短信
  1. var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS);
  2. msg.to = ['13800138000', '13800138001'];
  3. msg.body = '东翌学院http://www.dongyixueyuan.com';
  4. plus.messaging.sendMessage( msg );

11.拨打电话

  1. <a href="tel:10086">拨打电话</a>

12.发送邮件

  1. <a href="mailto:dongyixueyuan@qq.com">发送邮件到东翌学院</a>

13.本地存储

  1. //设置
  2. plus.storage.setItem('键','值'); -> plus.storage.setItem('name','dongyixueyuan');
  3. //查询
  4. plus.storage.getItem('键'); -> var name = plus.storage.getItem('name');
  5. //删除
  6. plus.storage.removeItem('键'); -> plus.storage.removeItem('name');
  7. //全部清除
  8. plus.storage.clear();
  9. //HTML5自带 - 设置
  10. localStorage.setItem('键','值'); -> localStorage.setItem('name','dongyixueyuan');
  11. //HTML5自带 - 查询
  12. localStorage.getItem('键'); -> var name = localStorage.setItem('name');
  13. //HTML5自带 - 删除
  14. localStorage.removeItem('键'); -> localStorage.removeItem('name');

14.图片上传

  1. //初始上传地址
  2. var server="http://tongle.dongyixueyuan.com/upload_file.php"; // 学员测试使用
  3. var files=[]; //图片存放的数组 可以上传一个,或者多个图片
  4. //上传图片
  5. function upload_img(p){
  6. //又初始化了一下文件数组 为了支持我的单个上传,如果你要一次上传多个,就不要在写这一行了
  7. //注意
  8. files=[];
  9. var n=p.substr(p.lastIndexOf('/')+1);
  10. files.push({name:"uploadkey",path:p});
  11. //开始上传
  12. start_upload();
  13. }
  14. //开始上传
  15. function start_upload(){
  16. if(files.length<=0){
  17. plus.nativeUI.alert("没有添加上传文件!");
  18. return;
  19. }
  20. //原生的转圈等待框
  21. var wt=plus.nativeUI.showWaiting();
  22. var task=plus.uploader.createUpload(server,
  23. {method:"POST"},
  24. function(t,status){ //上传完成
  25. alert(status);
  26. if(status==200){
  27. //资源
  28. var responseText = t.responseText;
  29. //转换成json
  30. var json = eval('(' + responseText + ')');
  31. //上传文件的信息
  32. var files = json.files;
  33. //上传成功以后的保存路径
  34. var img_url = files.uploadkey.url;
  35. //ajax 写入数据库
  36. //关闭转圈等待框
  37. wt.close();
  38. }else{
  39. console.log("上传失败:"+status);
  40. //关闭原生的转圈等待框
  41. wt.close();
  42. }
  43. });
  44. task.addData("client","");
  45. task.addData("uid",getUid());
  46. for(var i=0;i<files.length;i++){
  47. var f=files[i];
  48. task.addFile(f.path,{key:f.name});
  49. }
  50. task.start();
  51. }
  52. // 产生一个随机数
  53. function getUid(){
  54. return Math.floor(Math.random()*100000000+10000000).toString();
  55. }

15.地理位置

  1. //直接获取地理位置
  2. plus.geolocation.getCurrentPosition( geoInfo, function ( e ) {
  3. alert( "获取位置信息失败:"+e.message );
  4. } );
  5. //监听地理位置
  6. var watchId; //开关 函数外层定义
  7. if ( watchId ) {
  8. return;
  9. }
  10. watchId = plus.geolocation.watchPosition( function ( p ) {
  11. alert( "监听位置变化信息:" );
  12. geoInfo( p );
  13. }, function ( e ) {
  14. alert( "监听位置变化信息失败:"+e.message );
  15. });
  16. //停止监听地理位置
  17. if ( watchId ) {
  18. alert( "停止监听位置变化信息" );
  19. plus.geolocation.clearWatch( watchId );
  20. watchId = null;
  21. }
  22. //获得具体地理位置
  23. //获取设备位置信息
  24. function geoInfo(position){
  25. var timeflag = position.timestamp;//获取到地理位置信息的时间戳;一个毫秒数;
  26. var codns = position.coords;//获取地理坐标信息;
  27. var lat = codns.latitude;//获取到当前位置的纬度;
  28. var longt = codns.longitude;//获取到当前位置的经度
  29. var alt = codns.altitude;//获取到当前位置的海拔信息;
  30. var accu = codns.accuracy;//地理坐标信息精确度信息;
  31. var altAcc = codns.altitudeAccuracy;//获取海拔信息的精确度;
  32. var head = codns.heading;//获取设备的移动方向;
  33. var sped = codns.speed;//获取设备的移动速度;
  34. //百度地图申请地址
  35. // http://lbsyun.baidu.com/apiconsole/key
  36. // http://api.map.baidu.com/geocoder/v2/?output=json&ak=你从百度申请到的Key&location=纬度(Latitude),经度(Longitude)
  37. // http://api.map.baidu.com/geocoder/v2/?output=json&ak=BFd9490df8a776482552006c538d6b27&location=40.065639,116.419413
  38. //详细地址
  39. //http://api.map.baidu.com/geocoder/v2/?ak=eIxDStjzbtH0WtU50gqdXYCz&output=json&pois=1&location=40.065639,116.419413
  40. var baidu_map = "http://api.map.baidu.com/geocoder/v2/?output=json&ak=BFd9490df8a776482552006c538d6b27&location="+lat+','+longt;
  41. mui.get(baidu_map,{ //请求的地址
  42. },
  43. function(data){ //服务器返回响应,根据响应结果,分析是否登录成功; ...
  44. var result = data['result'].addressComponent;
  45. // 国家
  46. var country = result['country'];
  47. //城市
  48. var city = result['city'];;
  49. //地址
  50. var address = result['province'] + result['district'] + result['street'];
  51. //data 有很多信息,大家如果需要可以for in出来看下
  52. },'json'
  53. );
    }

16.设置IOS状态栏

  1. mui.plusReady(function(){
  2. if(mui.os.ios){
  3. //UIStatusBarStyleDefault //字体深色
  4. //UIStatusBarStyleBlackOpaque //字体浅色
  5.      plus.navigator.setStatusBarStyle('UIStatusBarStyleBlackOpaque');
  6. plus.navigator.setStatusBarBackground("#007aff"); //背景颜色
  7. }
    )};

17.手机通讯录

  1. mui.plusReady(function(){
  2. //访问手机通讯录 plus.contacts.ADDRESSBOOK_PHONE
  3. //访问SIM卡通讯录 plus.contacts.ADDRESSBOOK_SIM
  4. plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE,function(addressbook){
  5. addressbook.find(null,function (contacts){
  6. for(var a in contacts){
  7. //这里是安卓手机端的获取方式 ios的不太一样,如果需要这块代码可以联系老师获得
  8. var user = contacts[a].displayName; //联系人
  9. var phone = contacts[a].phoneNumbers[0].value; //手机号码
  10. }
  11. },function ( e ) {alert( "Find contact error: " +e.message );},{multi:true});
  12. });
    )};

18.启动页设置

设置手动关闭启动页:

manifest.json -> plus -> autoclose 改为 false

关闭启动页:

  1. plus.navigator.closeSplashscreen();

mui框架(三)的更多相关文章

  1. 跨平台移动端APP开发---简单高效的MUI框架

    MUI是dcloud(数字天堂)公司旗下的一款跨平台开发移动APP的框架产品,在学习MUI框架之前,最先接触了Hbuilder代码编辑器,它带给我的第一感觉是快,这是HBuilder的最大优势,通过完 ...

  2. MUI框架开发HTML5手机APP(一)--搭建第一个手机APP

      前  言 JRedu 随着HTML5的不断发展,移动开发成为主流趋势!越来越多的公司开始选择使用HTML5开发手机APP,而随着手机硬件设备配置的不断提升,各种开发框架的不断优化,也使着H5开发的 ...

  3. mui框架上下拉加载

    mui框架被定位为“最接近原生体验的移动App的UI框架”. 写下mui框架中常用的两个功能,下拉刷新和上拉加载,没有后台交互,用js写假数据模拟,下面直接上代码. <!DOCTYPE html ...

  4. MUI框架开发HTML5手机APP(二)--页面跳转传值&底部选项卡切换

      概 述 JRedu 在上一篇博客中,我们学习了如何使用Hbuilder创建一个APP,同时如何使用MUI搭建属于自己的第一款APP,没有学习的同学可以戳链接学习: http://www.cnblo ...

  5. mui框架(二)

    1.底部导航切换界面 HTML部分: <nav class="mui-bar mui-bar-tab"> <a id="defaultTab" ...

  6. MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)

    出处:http://www.cnblogs.com/jerehedu/p/7832808.html  前  言 JRedu 随着HTML5的不断发展,移动开发成为主流趋势!越来越多的公司开始选择使用H ...

  7. 【MUI框架】学习笔记整理 Day 2

    参考整理自MUI官网 http://dev.dcloud.net.cn/mui/ui/ (1)numbox(数字输入框) mui提供了数字输入框控件,可直接输入数字,也可以点击“+”.“-”按钮变换当 ...

  8. 【MUI框架】学习笔记整理 Day 1

    MUI 框架之 [原生UI] (1)accordion(折叠面板) 由二级列表演化而来 <ul class="mui-table-view"> 2 <li cla ...

  9. MUI框架-14-使用自定义icon图标、引入阿里巴巴矢量图标

    MUI框架-14-使用自定义icon图标.引入阿里巴巴矢量图标 首先介绍介绍一下,前端必备的非常强大的 阿里巴巴矢量图标库:地址是:http://www.iconfont.cn/ 这里有丰富,精美,且 ...

  10. MUI框架-13-使用百度地图 API(图文教程)

    MUI框架-13-使用百度地图 API(图文教程) 后面有实例,转载请注明出处 一.申请百度地图权限 1.打开 百度地图开放平台:http://lbsyun.baidu.com/apiconsole/ ...

随机推荐

  1. Eclipse中Tomcat的配置

    1.Window-Preferences-Server-Runtime Environments 2.点击Add,选择相应的Tomcat版本,我的是7.0的所以我选择这个.并勾选Create a ne ...

  2. Collection中的List,Set的toString()方法

    代码:     Collection c = new ArrayList();     c.add("hello");     c.add("world"); ...

  3. Vue.js Is Good, but Is It Better Than Angular or React?

    Vue.js is a JavaScript library for building web interfaces. Combining  with some other tools It also ...

  4. [BZOJ 4763]雪辉

    [BZOJ 4763] 雪辉 题意 给定一棵 \(n\) 个点的无根树, 点带权. \(q\) 次询问, 每次给定树上的若干路径, 求这些路径上的点共有多少种不同权值以及这些点的权值组成的集合的 \( ...

  5. redis在.net架构中的应用(2)--并发和原子操作不可兼得

    在上一篇文章中,我主要向大家介绍了利用servicestack连接redis以及一些redis的基本数据类型,传送门 本文中,我将通过一个具体应用场景为大家介绍redis中的并发和原子操作 其中用到的 ...

  6. Dubbo -- 系统学习 笔记 -- 目录

    用户指南 入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启 ...

  7. python不要使用可变对象作为参数的默认值

    幽灵乘客例子: . 如上:如果为空时,bus2和bus3引用的是相同的一个list,就会造成粗错误 实际工作中,如果不想改变某个参数值,那么通过以上这种赋值也会改变 解决方式self.passenge ...

  8. selenium自动化环境搭建(Windows)

    参考内容:虫师<selenium2自动化测试实战-基于python语言> 一.selenium介绍 selenium主要用于web应用程序的自动化测试,还支持所有基于web的管理任务自动化 ...

  9. 计算机视觉-sift(2)代码理解

    之前结合不同人的资料理解了sift的原理,这里通过opencv中的代码来加深对sift的实现的理解. 使得能够从原理性理解到源码级的理解.不过该博文还是大量基于<赵春江, opencv2.4.9 ...

  10. js倒计时,页面刷新时,不会从头计时

    最近不忙,瞎鼓捣...哈哈 这里利用了H5的本地存储 localStorage,取秒数直接用了php的time()方法,就懒得用js取了. 把第一次访问页面时的时间存在客户端,然后再刷新的时候,比较用 ...