加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
example.html 41.68 KB
一键复制 编辑 原始数据 按行查看 历史
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>H5测试</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<style>
body{
padding-top: 20px;
}
button{
margin-bottom: 10px;
background-color: #fff;
padding: 5px;
color: #000;
text-align: center;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
input{
margin-bottom: 5px;
}
button.red{
background-color: red;
color: #fff;
}
input{
padding: 10px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
width: 100%;
display: block;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
border: 1px solid #ddd;
}
.group{
position: relative;
padding: 10px 0 0 80px;
}
.group .title{
font-size: 12px;
color: #777;
position: absolute;
top: 10px;
left: 10px;
}
</style>
</head>
<body>
<div class="group">
<div class="title">
扫码
</div>
<div class="content">
<button onclick="createBarcode()">开启扫码</button>
<button class="red" onclick="closeBarcode()" id="closeCodeBtn" style="display: none;">关闭扫码</button>
<button onclick="chooseImgToScan()">相册扫码</button>
</div>
</div>
<div class="group">
<div class="title">
位置与通讯
</div>
<div class="content">
<button onclick="getLocation()">获取地理位置</button>
<button onclick="getContacts()">通讯录列表</button>
</div>
</div>
<div class="group">
<div class="title">
相机与相册
</div>
<div class="content">
<button onclick="captureImage()">拍照</button>
<button onclick="galleryImg(1)">选择单张图片</button>
<button onclick="galleryImg()">选择多张图片</button>
<input type="text" id="imgUrl" placeholder="图片链接" value="https://mshoptest.codinge.cn/1005/DownloadFile?fileid=19052&width=264"/>
<button onclick="savePicture('imgUrl')">保存网络图片到相册</button>
<div class="v">
<input type="text" id="base64" placeholder="图片链接" value="data:image/jpeg;base64,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"/>
<button onclick="savePicture('base64')">保存base64图片到相册</button>
</div>
</div>
</div>
<div class="group">
<div class="title">
文件
</div>
<div class="content">
<input type="text" id="fileUrl" placeholder="下载文件的链接" value="https://mshoptest.codinge.cn"/>
<button onclick="createDownload('fileUrl')">下载小文件</button>
<button onclick="readTxtFile()">读取文本文件</button>
<input type="text" id="bigFile" placeholder="下载文件的链接" value="http://joker.joiny.cn/ROOT.7z"/>
<button onclick="createDownload('bigFile')">下载大文件</button>
<span class="percent" id="percent"></span>
<button onclick="cancelDownload()" id="cancelBtn" style="display: none;">取消下载</button>
<br/>
<input type="text" id="picUrl" placeholder="下载文件的链接" value="https://mshoptest.codinge.cn/1005/DownloadFile?fileid=19052&width=264"/>
<button onclick="createDownload('picUrl')">下载文件(图片)</button>
<button onclick="uploadFile()">文件上传</button>
<span class="percent" id="uploadPercent"></span>
<button onclick="cancelUpload()" id="cancelUploadBtn" style="display: none;">取消上传</button>
</div>
</div>
<div class="group">
<div class="title">
本地存储
</div>
<div class="content">
<input type="text" id="key" placeholder="输入存入键值对的值" value="name"/>
<input type="text" id="value" placeholder="输入存入键值对的值" value="小明"/>
<button onclick="setLocalStorage()">写入本地键值对</button>
<button onclick="getLocalStorage()">读取本地键值对</button>
</div>
</div>
<div class="group">
<div class="title">
分享
</div>
<div class="content">
<button onclick="shareWeiXin()">分享到微信好友/朋友圈</button>
</div>
</div>
<div class="group">
<div class="title">
支付
</div>
<div class="content">
<button onclick="wxPay()">微信支付</button>
<button onclick="alipay()">支付宝支付</button>
</div>
</div>
<!--引入JS文件-->
<script src="app.api.1.0.2.js"></script>
<script>
//app从后台切换到前台
ms.onAppShow(function(){
//H5中监听到app从进入前台事件 , app show .. do something..
});
//开启扫码
function createBarcode(){
ms.scanCode({
style : {
background : '#000',
frameColor : '#07c160',
scanbarColor : '#07c160' ,
top:'100px',
left:'0px',
width: '100%',
height: '500px'
},
success : function(code){
alert("扫码识别文本:" + code);
},
fail : function(err){
alert("扫码失败:"+ JSON.stringify(err) );
}
});
//隐藏取消扫码按钮
document.getElementById('closeCodeBtn').style.display = 'inline-block' ;
}
//关闭扫码
function closeBarcode(){
ms.closeBarcode();
document.getElementById('closeCodeBtn').style.display = 'none' ;
}
//从相册扫码
function chooseImgToScan(){
ms.scanFromGallery({
success : function(code){
alert("相册扫码识别文本:" + code);
},
fail : function(err){
alert("相册扫码失败:"+ JSON.stringify(err) );
}
});
}
//获取地理位置
function getLocation(){
ms.getLocation({
success : function(p){
alert(JSON.stringify(p) );
alert('Geolocation\nLatitude:' + p.coords.latitude + '\nLongitude:' + p.coords.longitude + '\nAltitude:' + p.coords.altitude);
},
fail : function(err){
alert("获取地理位置失败:"+ JSON.stringify(err) );
}
});
}
function getContacts(){
ms.getContacts({
success : function(contacts){
alert(JSON.stringify(contacts) );
},
fail : function(err){
alert("获取通讯录失败:"+ JSON.stringify(err) );
}
});
}
//拍照
function captureImage(){
ms.takePhoto({
success : function(path){
alert( "拍照完成,本地图片路径:\n" + path );
},
fail : function(err){
alert("拍照失败:"+ JSON.stringify(err) );
}
});
}
//从相册选取图片
function galleryImg(count){
ms.chooseImage({
count : count , //最大数量,不填则不限制
success : function(path){
if(typeof path == 'string'){
alert( "选取一张图片时返回图片地址:\n" + path );
}else{
alert( "选取多张图片时,返回路径列表:\n" + JSON.stringify(path) );
}
},
fail : function(err){
alert("选取图片失败:"+ JSON.stringify(err) );
}
});
}
//保存到相册
function savePicture(eleID){
var url = document.getElementById(eleID).value ;
if(!url){
alert("请输入要下载的图片链接");
return false;
}
ms.saveImage({
filePath : url , //保存的图片路径,支持网络图片与base64路径
success : function(path){
alert( "图片保存成功,本地路径为:\n" + path );
},
fail : function(err){
alert("保存图片失败:"+ JSON.stringify(err) );
}
});
}
//文件下载
var downloadFilePath = null ;
var downloadTask = null ;
function createDownload(id){
var fileUrl = document.getElementById(id).value ;
downloadTask = ms.downloadFile({
url : fileUrl , //文件的网络链接
onProgress : function(downloadSize , totalSize , percent){
document.getElementById("cancelBtn").style.display = 'inline-block' ;
document.getElementById("percent").style.display = 'inline-block' ;
document.getElementById("percent").innerText = percent ;
//已下载文件大小,文件总大小,下载百分比
console.log("下载进度:" + downloadSize + "/" + totalSize );
},
success : function(path){
document.getElementById("cancelBtn").style.display = 'none' ;
document.getElementById("percent").style.display = 'none' ;
downloadFilePath = path ;
alert( "文件下载成功,本地路径为:\n" + JSON.stringify(path) );
},
fail : function(err){
alert("文件下载失败:"+ JSON.stringify(err) );
}
});
}
//取消下载任务
function cancelDownload(){
document.getElementById("cancelBtn").style.display = 'none' ;
document.getElementById("percent").style.display = 'none' ;
if(!downloadTask){
return false ;
}
downloadTask.abort();
}
//文件上传
var uploadTask = null ;
function uploadFile(){
if(!downloadFilePath){
alert("请先下载一个文件到本地");
return false ;
}
uploadTask = ms.uploadFile({
url : 'https://joker.joiny.cn/api/uploadImage' ,
filePath : downloadFilePath ,
name : 'upfile' ,
mimeType : "image/jpeg" , //指定上传文件的类型,不指定会读取文件名的后缀,可能会导致上传文件无法读取的错误。
formData : {
type : '测试类型' //自定义的附加数据
},
header : {
customer : "customerValuexxxxx" //不支持设置“Content-Type”、“User-Agent”、“Cookie”的值。
},
options : {
method : "POST" , //仅支持“POST”请求。
blocksize : 102400 , //上传任务每次上传的文件块大小(仅在支持断点续传的服务有效),若设置值小于等于0则表示不分块上传。
priority : 100 , //数值越大优先级越高,默认优先级值为100。
timeout : 120 , // 超时时间为服务器响应请求的时间(不是上传任务完成的总时间),如果设置为0则表示永远不超时。
retry : 3 , //上传任务重试次数
retryInterval : 30 //上传任务重试间隔时间
},
onProgress : function(uploadSize , totalSize , percent){
document.getElementById("cancelUploadBtn").style.display = 'inline-block' ;
document.getElementById("uploadPercent").style.display = 'inline-block' ;
document.getElementById("uploadPercent").innerText = percent ;
//已上传文件大小,文件总大小,上传百分比
console.log("上传进度:" + uploadSize + "/" + totalSize + ",已上传:" + percent );
},
success : function(res){
if(confirm(JSON.stringify(res))){
document.getElementById("cancelUploadBtn").style.display = 'none' ;
document.getElementById("uploadPercent").style.display = 'none' ;
}
},
fail : function(err){
alert("error");
alert(JSON.stringify(err));
}
});
}
function cancelUpload(){
document.getElementById("cancelUploadBtn").style.display = 'none' ;
document.getElementById("uploadPercent").style.display = 'none' ;
if(!uploadTask){
return false ;
}
uploadTask.abort();
}
//读取本地文本文件
function readTxtFile(){
if(!downloadFilePath){
alert("没有可读取的文本文件");
return false ;
}
ms.readTxtFile({
filePath : downloadFilePath ,
success : function(res){
alert("文件大小:\n" + res.size + "\n文件路径:\n" + res.name + "\n文件内容:\n" + res.content );
},
fail : function(err){
alert("文件读取失败:"+ JSON.stringify(err) );
}
});
}
//本地数据存储
function setLocalStorage(){
var key = document.getElementById('key').value ;
var value = document.getElementById('value').value ;
if(!key){
alert("请输入键值对的key");
return false ;
}
ms.setStorage(key , value);
alert("写入成功");
}
function getLocalStorage(){
var key = document.getElementById('key').value ;
if(!key){
alert("请输入键值对的key");
return false ;
}
var value = ms.getStorage(key);
alert("键:" + key + ",本地存储的数据为:" + value );
}
function shareWeiXin(){
ms.wxShare({
title: "接口可以自定义的标题",//标题
content: "接口可以自定义的分享描述,也可以自定义链接,自定义缩略图哦~",
href: 'https://www.baidu.com/' ,//分享出去后,点击跳转地址
imgUrl: "https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super" , //分享缩略图
success : function(e){
alert("分享完成,无法判断是否分享成功哦~");
},
fail : function(err){
alert(JSON.stringify(err));
}
});
}
//简单的ajax请求
function sendGetRequest( url , success , fail){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
switch(xhr.readyState){
case 4:
if(xhr.status==200){
if(typeof success == "function"){
success(xhr.responseText);
}
}else{
if(typeof fail == "function"){
fail("请求失败");
}
}
break;
default:
break;
}
};
xhr.open( 'GET' , url );
xhr.send();
}
//微信支付
function wxPay(){
//请求微信预付订单信息
sendGetRequest( "https://xxxxx.com/alipay" , function(res){
ms.wxPay({
statement : res ,
success : function(res){
alert(JSON.stringify(res));
},
fail : function(err){
alert(JSON.stringify(err));
}
});
},function(err){
alert("请求支付订单信息失败,请先搭建服务器环境");
});
}
//支付宝支付
function alipay(){
//请求支付宝预付订单信息
sendGetRequest( "https://xxxxx.com/alipay" , function(res){
ms.alipay({
statement : res ,
success : function(res){
alert(JSON.stringify(res));
},
fail : function(err){
alert(JSON.stringify(err));
}
});
},function(err){
alert("请求支付订单信息失败,请先搭建服务器环境");
});
}
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化