1.1.4 • Published 4 years ago

hesc-jsapi v1.1.4

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

H5混合开发框架2.0版


JSAPI能力是为H5应用提供调用手机原生能力,帮助开发者高效使用拍照,定位等手机系统能力,融合H5和原生开发。

面向对象:公司前端,终端开发人员


使用说明

1.使用npm安装
npm install hesc-jsapi --save
2.在main.js文件里进行全局引入,并注册为全局变量
import {hesc} from 'hesc-jsapi'
Vue.prototype.$hesc = hesc
3.在单页面的 index.html 文件中引入 CDN 链接。
https://cdn.jsdelivr.net/npm/hesc-hybrid-master@1.0.4/index.min.js


接口约定

  • 所有接口都为异步
  • 接受一个object类型的参数
  • 成功回调 onSuccess(某些异步接口的成功回调,将在事件触发时被调用,具体详情请查看相关onSuccess回调时机)
  • 失败回调 onFail
this.$hesc.命名空间.功能.方法({
    参数1: '',
    参数2: '',
    onSuccess: function(result) {
    //成功回调
    /*
    {
        //所有返回信息都输出在这里
    }*/
    },
    onFail: function(){
    //失败回调
    }
})    

JSAPI总览


JSAPI用法

1容器

获取容器版本号
this.$hesc.soft.version({
	onSuccess: function(result) {
         /*
         {versionCode:Number,versionName:String}	
        */  
    },
    onFail: function(){}
})

2弹窗

2.1 alert

    this.$hesc.device.notification.alert({
        message: "亲爱的",
        title: "提示",//可传空
        buttonName: "收到",
        onSuccess : function() {
            //onSuccess将在点击button之后回调
            /*回调*/
        },
        onFail : function(err) {}
    });

2.2 confirm

    this.$hesc.device.notification.confirm({
        message: "你爱我吗",
        title: "提示",
        buttonLabels: ['爱', '不爱'],
        onSuccess : function(result) {
            //onSuccess将在点击button之后回调
            /*
            {
                buttonIndex: 0 //被点击按钮的索引值,Number类型,从0开始
            }
            */
        },
        onFail : function(err) {}
    });

2.3 toast

this.$hesc.device.notification.toast({
    text: String, //提示信息
    duration: Number, //显示持续时间,单位秒,默认按系统规范[android只有两种(<=2s >2s)]
    delay: Number, //延迟显示,单位秒,默认0
    onSuccess : function(result) {
        /*{}*/
    },
    onFail : function(err) {}
})

2.4 单选

this.$hesc.biz.util.select({
    title: “单选”, //选择框标题
buttonLabels: ['确定', '取消'],  //按钮文本
array:[ '中国', '美国','加拿大', '英国'],  //选项
onSuccess : function(result) {
        //onSuccess将在点击button之后回调
        /*
        {
            buttonIndex: 0 //被点击按钮的索引值,Number类型,从0开始,
		item:“中国”		//返回的值
        }
        */

    },
    onFail : function(err) {}
})

2.5 多选

this.$hesc.biz.util.multiSelect({
    title: “多选, //选择框标题
buttonLabels: ['确定', '取消'],  //按钮文本
array:[ '中国', '美国','加拿大', '英国'],  //选项
onSuccess : function(result) {
        //onSuccess将在点击button之后回调
        /*
        {
            buttonIndex: 0 //被点击按钮的索引值,Number类型,从0开始,
		items:[“中国”, “美国”]		//返回的值
        }
        */

    },
    onFail : function(err) {}
})

3设备

3.1获取网络类型

this.$hesc.device.connection.getNetworkType({
    onSuccess : function(data) {
        /*
        {
            result: 'wifi' // result值: wifi mobile unknown none   none表示离线
        }
        */
    },
    onFail : function(err) {}
});

3.2获取uuid

this.$hesc.device.base.getUUID({
    onSuccess : function(data) {
        /*
        {
            uuid: '3udbhg98ddlljokkkl' //
        }
        */
    },
    onFail : function(err) {}
});

3.3获取手机基础信息

this.$hesc.device.base.getPhoneInfo({
    onSuccess : function(data) {
        /*
        {
            screenWidth: 1080, // 手机屏幕宽度
            screenHeight: 1920, // 手机屏幕高度
            brand:'Mi', // 手机品牌
            model:'Note4', // 手机型号
            version:'7.0'. // 版本
            netInfo:'wifi' , // 网络类型 wifi/4g/3g 
            operatorType :'xx' // 运营商信息
        }
        */
    },
    onFail : function(err) {}
});

4日历

4.1日期选择器

this.$hesc.biz.util.datepicker({
    format: 'yyyy-MM-dd',//注意:format只支持android系统规范,即2015-03-31格式为yyyy-MM-dd
    value: '2015-04-17', //默认显示日期
    onSuccess : function(result) {
        //onSuccess将在点击完成之后回调
        /*{
            value: "2015-02-10"
        }
        */
    },
    onFail : function(err) {}
})

4.2时间选择器

this.$hesc.biz.util.timepicker({
    format: 'HH:mm',
    value: '14:00', //默认显示时间
    onSuccess : function(result) {
        //onSuccess将在点击完成之后回调
        /*{
            value: "10:00"
        }
        */
    },
    onFail : function(err) {}
})

4.3日期及时间选择器

this.$hesc.biz.util.datetimepicker({
    format: 'yyyy-MM-dd HH:mm',
    value: '2015-04-17 08:00', //默认显示
    onSuccess : function(result) {
        //onSuccess将在点击完成之后回调
        /*{
            value: "2015-06-10 09:50"
        }
        */
    },
    onFail : function(err) {}
})

5导航栏

5.1 设置导航栏颜色

this.$hesc.biz.navigation.setbg({
    bgcolor: '#CCF5F5F5',//ARGB格式 --- 透明度,红色,绿色,蓝色
       onSuccess : function() {
        //onSuccess将在点击完成之后回调
    },
    onFail : function(err) {}
})

5.2设置导航栏标题

this.$hesc.biz.navigation.setTitle({
    title : '邮箱正文',//控制标题文本,空字符串表示显示默认文本
    onSuccess : function() {
       //onSuccess将在点击完成之后回调
    },
    onFail : function(err) {}
});

5.3设置左侧导航按钮文本

this.$hesc.biz.navigation.setLeft({
    control: true,//是否控制点击事件,true 控制,false 不控制
    text: '',//控制显示文本,空字符串表示显示默认文本
    onSuccess : function() {
        //如果control为true,则onSuccess将在发生按钮点击事件被回调
    },
    onFail : function(err) {}
});

5.4关闭当前页面

使用说明
调用此接口可以关闭当前浏览器窗口

this.$hesc.biz.navigation.close({
    onSuccess : function() {
    },
    onFail : function(err) {}
})

5.5设置导航栏右侧单个按钮

this.$hesc.biz.navigation.setRight({
    show: false,//控制按钮显示, true 显示, false 隐藏
    control: true,//是否控制点击事件,true 控制,false 不控制
    text: '发送',//控制显示文本,空字符串表示显示默认文本
    onSuccess : function() {
        //如果control为true,则onSuccess将在发生按钮点击事件被回调
    },
    onFail : function(err) {}
});

5.6返回上一级页面

使用说明 调用此接口会返回前端页面的上级浏览页面,如果是H5的根页面,调用此接口会关闭当前浏览窗口。

this.$hesc.biz.navigation.goBack({
    onSuccess : function(result) {
        /*result结构
        {}
        */
    },
    onFail : function(err) {}
})

5.7替换页面

使用说明 使用新的页面替换当前页面,当前页面会被立即销毁,展示新页面,无动画。

this.$hesc.biz.navigation.replace({
    url: 'https://xxx.com',// 新的页面链接
    onSuccess : function(result) {
        /*
        {}
        */
    },
    onFail : function(err) {}
});

5.8显示隐藏标题栏

使用说明 控制标题栏的显示和隐藏。

this.$hesc.biz.navigation.display({
    show: false,//控制按钮显示, true 显示, false 隐藏
    onSuccess : function(result) {
        
    },
    onFail : function(err) {}
});

6UI控件

6.1设置顶部进度条颜色

this.$hesc.ui.progressBar.setColors({
    colors:"#CCFFFFFF" //ARGB
    onSuccess: function(data) {
        
    },
    onFail: function() {
    }
})

7扫码

7.1扫二维码

this.$hesc.biz.util.scan({
    type: "qrCode" , //String type 为 qrCode
    onSuccess: function(data) {
    //onSuccess将在扫码成功之后回调
      /* data结构
         { 'text': String}
      */
    },
   onFail : function(err) {
   }
})

8存储

8.1设置存储信息

this.$hesc.util.domainStorage.setItem({
     name:'key' , //String 存储信息的key值,必须唯一  
     value:'value', //String 存储信息的Value值  
     onSuccess : function(info) {
          /*{
                result:true
          }*/
     },
     onFail : function(err) {
          alert(err);
     }
 });

8.2获取存储信息

this.$hesc.util.domainStorage.getItem({
     name:'key' , // 存储信息的key值
     onSuccess : function(info) {
        /*{
             value: 'value' // 获取存储的信息
         }*/
     },
     onFail : function(err) {
          alert(err);
     }
 });

8.3删除存储信息

this.$hesc.util.domainStorage.removeItem({
     name:'key' , // 存储信息的key值
     onSuccess : function(info) {
          /*{
		        result:true
          }*/
     },
     onFail : function(err) {
          alert(err);
     }
 });

9地图

9.1获取当前GPS坐标

this.$hesc.device.geolocation.get({
    tiandi:true,//是否采用天地图 true天地图  false其它地图平台
    key:'',//天地图的开发者key,请申请服务端应用的key
    poi:true,// 是否获取该GPS位置的地理信息 true获取  false不获取 -- 只有天地图模式会返回地理信息
    onSuccess : function(result) {
        /* 坐标 result 结构
        {
            longitude : Number,//经度
            latitude : Number,//纬度
            /* 如采用了天地图,会返回天地图的地理信息
            province: 'xxx', // POI所在省会,可能为空
            provinceCode: 'xxx', // POI所在省会编码,可能为空
            city: 'xxx', // POI所在城市,可能为空
            cityCode: 'xxx', // POI所在城市,可能为空
            adName: 'xxx', // POI所在区名称,可能为空
            adCode: 'xxx', // POI所在区编码,可能为空
            title: 'xxx', // POI的名称
            address: 'xxx', // 详细地址,可能为空
            formatted_address:'xxx', // 格式化地址
            */
        }
        */
    },
    onFail : function(err) {}
});

9.2打开地图并定位

使用说明 默认采用天地图形式

this.$hesc.biz.map.locate({
    latitude: 39.903578, // 纬度,非必须
    longitude: 116.473565, // 经度,非必须
    baseUrl:String, //天地图底图地址
    annotation:String, //天地图标注地址 
    parturl:String,//部件地址
    key:'xxx',//申请的天地图key
    mapExtent:{minX:116.46,minY:31.72,maxX:116.71,maxY:31.87},//地图初始化范围
    onSuccess: function (result) {
        /* result 结构 */
 	{
            province: 'xxx', // POI所在省会,可能为空
            provinceCode: 'xxx', // POI所在省会编码,可能为空
            city: 'xxx', // POI所在城市,可能为空
            cityCode: 'xxx', // POI所在城市,可能为空
            adName: 'xxx', // POI所在区名称,可能为空
            adCode: 'xxx', // POI所在区编码,可能为空
            distance: 'xxx', // POI与设备位置的距离
            postCode: 'xxx', // POI的邮编,可能为空
            snippet: 'xxx', // POI的街道地址,可能为空
            title: 'xxx', // POI的名称
	        address: 'xxx', // 详细地址,可能为空
            latitude: 39.903578, // POI的纬度
            longitude: 116.473565, // POI的经度
        }
    },
    onFail: function (err) {}
});

10业务

10.1 打开应用

使用说明 打开手机上其它APP应用

this.$hesc.biz.microApp.openApp({
    agentId: '123',// iOS:应用scheme;   Android:应用包名
    appId: '234',// Android: APP入口activity  cn.com.hesc.xxxActivity
    onSuccess : function() {},
    onFail : function(err) {}
})

11 文件

11.1 下载文件

this.$hesc.biz.util.downloadFile({
    url: 'http://static.dingtalk.com/media/lADOADTWJM0C2M0C7A_748_728.jpg_60x60q90.jpg', //要下载的文件的url
    name: '一个图片.jpg', //定义下载文件名字
    onSuccess : function() {
        /*下载完成
            {path:'xxxxx'}
        */
    },
    onFail : function() {}
})

12 图片

12.1 拍照

this.$hesc.device.media.capture({
	custome:true, //true 自定义相机  false 系统相机
compress:true,//true 进行压缩
thumbnail:false,//true 优先返回缩略图base64,后台上传图片,false不需要缩略图,直接后台上传图片
mediaUrl:’’,//附件服务器地址
onThumbnail : function(result) {
         /*拍摄图片后返回100*100的缩略图base64编码的字符串
          {
                thumbnails:['./9XXXXXXXXXXXXXXXXXX’,''}]
          }
        */

},
onSuccess : function(result) {
        /*图片上传成功后返回url地址
          {  
		pics:[
                {path : http://yf.hesc.com.cn/hesc-fileservice/upload/file/2018/04/04/20180404160840998550.jpg}
        ]
	}
        */
    },
    onFail : function() {}

})

12.2 选择图片

this.$hesc.device.media.select({
   image:{multiple:true,compress:false,max:9},//multiple true进行多选 compress true进行压缩,max最多选9张,如果multiple设置为false,max默认赋值1
thumbnail:false,//true 优先返回缩略图base64,后台上传图片,false不需要缩略图,直接后台上传图片
mediaUrl:’’,//附件服务器地址
onThumbnail : function(result) {
         /*拍摄图片后返回100*100的缩略图base64编码的字符串
          {
             thumbnails:['./9XXXXXXXXXXXXXXXXXX’,''}]
          }
        */

},
onSuccess : function(result) {
        /*图片上传成功后返回url地址
          {  
            pics:[
                    {path : http://yf.hesc.com.cn/hesc-fileservice/upload/file/2018/04/04/20180404160840998550.jpg}
            ]
          }
        */
    },
    onFail : function(err) {}
})

12.3 图片预览

this.$hesc.biz.util.previewImage({
    urls: [String],//图片地址列表
    current: String,//当前显示的图片链接 可不填
    onSuccess : function(result) {
        /**/
    },
    onFail : function(err) {}
})

13电话

13.1 拨打电话

this.$hesc.biz.telephone.call({
    phone: ‘’, //电话号码
    onSuccess : function() {},
    onFail : function() {}
})

13.2 发送短信

this.$hesc.biz.telephone.smg({
phone: ‘’, //电话号码
msg:’发送的信息’,//要发送的信息
    onSuccess : function() {},
    onFail : function() {}
})

14音频

14.1 开始录音

this.$hesc.device.audio.startRecord({
    mediaUrl:’’,//附件服务器地址
    onSuccess : function () {//默认20秒。
    },
    onFail : function (err) {
    }
});

14.2 停止录音

this.$hesc.device.audio.stopRecord({
    mediaUrl:’’,//附件服务器地址
    onSuccess : function(res){
        res.mediaUrl; // 返回音频的url地址,可用于本地播放和音频下载
        res.duration; // 返回音频的时长,单位:秒
    },
    onFail : function (err) {
    }
});

14.3 监听录音自动停止

使用说明 当语音录制时间超过20秒时,自动停止语音录制,同时将录制的语音上传到服务端,返回音频资源的url。 推荐在调用 device.audio.startRecord 前设置监听录音自动停止的回调。

this.$hesc.device.audio.onRecordEnd({
    onSuccess : function(res) {
        res.mediaUrl; // 停止播放音频url地址
        res.duration; // 返回音频的时长,单位:秒
    },
    onFail : function (err) {
 
    }
});

14.4 播放语音

this.$hesc.device.audio.play({
    localAudioId : "mediaUrl",//音频的url地址
    onSuccess : function () {
 
    },
 
    onFail : function (err) {
    }
});

14.5 暂停播放

this.$hesc.device.audio.pause({
    localAudioId : "mediaUrl",
    onSuccess : function() {
    },
    onFail : function(err) {
    }
});

14.6 恢复暂停播放的语音

this.$hesc.device.audio.resume({
    localAudioId : "mediaUrl",
    onSuccess : function() {
    },
    onFail : function(err) {
    }
});

14.7 停止播放语音

this.$hesc.device.audio.stop({
    localAudioId : "mediaUrl",
    onSuccess : function () {
    },
    onFail : function (err) {
    }
});

14.8监听播放自动停止

this.$hesc.device.audio.onPlayEnd({
    onSuccess : function () {
    },
    onFail : function (err) {
    }
});

15打开新页面

15.1在新窗口上打开链接

this.$hesc.biz.util.openLink({
    url:"http://www.dingtalk.com",//要打开链接的地址
    onSuccess : function() {
        /**/
    },
    onFail : function(err) {}
})

16调用原生功能

16.1直接调用原生功能
this.$hesc.biz.native.method({
    param:object,//任何内容都可以
    onSuccess : function() {
        /**/
    },
    onFail : function(err) {}
})
1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago