Vue html5 plus,基于Html5 Plus + Vue + Mui 移动App 开发(二)

基于html5 plus + vue + mui 移动app 开发(二)

界面效果:

2028e7b2855cbbd421ac6007a5e35791.png

本页面采用html5 plus + vue + mui 开发移动界面,本页面实现:

1、下拉刷新、上拉获取更多功能;

2、使用vue 进行数据绑定;

3、使用webview 创建打开新的界面;

源码如下:

实全科技

实全科技

营业执照

var vue = new vue({

el: '#tableview',

data: {

news: [] //列表信息流数据

}

});

//mui初始化,配置下拉刷新

mui.init({

pullrefresh: {

container: '#tableview',

down: {

style: 'circle',

offset: '0px',

auto: true,

callback: function() {

if(window.plus && plus.networkinfo.getcurrenttype() === plus.networkinfo.connection_none) {

plus.nativeui.toast('似乎已断开与互联网的连接', {

verticalalign: 'top'

});

return;

}

pullrefreshdown();

}

},

up: {

height: 50,

auto: true,

contentrefresh: '正在加载...',

contentnomore: '没有更多数据了', //可选,请求完毕若没有更多数据时显示的提醒内容;

callback: pulluprefresh

}

}

});

var loaddata = false;

var hasnext = false;

var pagetoken = "";

var keyword = "";

function pullrefreshdown(){

settimeout(function(){

if(keyword == ""){

mui('#tableview').pullrefresh().endpulldown();

return;

}

if(loaddata){

return;

}

//keyword = keyword || "新闻";

//请求列表信息流

let ajaxurl = shiquan.serverurl+'/news/qihoo?apikey='+shiquan.apikey + "&site="+shiquan.site + "&kw="+keyword;

console.log("ajaxurl="+ajaxurl);

mui.ajax(ajaxurl,{

data:{},

datatype:'json',//服务器返回json格式数据

type:'get',//http请求类型

timeout:30000,//超时时间设置为10秒;

headers:{'content-type':'application/json'},

success:function(result){

mui('#tableview').pullrefresh().endpulldown();

if(result.retcode != "000000"){

plus.nativeui.toast("读取失败:"+result.message);

return;

}

console.log(json.stringify(result));

hasnext = result.hasnext;

pagetoken = result.pagetoken;

vue.news = result.data;

},

error:function(xhr,type,errorthrown){

mui('#tableview').pullrefresh().endpulldown();

//异常处理;

console.log("error:xhr="+xhr+" type="+type + " thrown="+errorthrown);

}

});

},1500);

};

function pulluprefresh() {

settimeout(function() {

console.log("hasnext:" + hasnext);

console.log("pagetoken:" + pagetoken);

mui('#tableview').pullrefresh().endpullup(hasnext == false); //参数为true代表没有更多数据了。

if(hasnext == false)

return;

if(keyword == ""){

return;

}

//请求列表信息流

let ajaxurl = shiquan.serverurl+'/news/qihoo?apikey='+shiquan.apikey + "&site="+shiquan.site + "&kw="+keyword+"&pagetoken="+pagetoken;

console.log("ajaxurl="+ajaxurl);

mui.ajax(ajaxurl,{

data:{},

datatype:'json',//服务器返回json格式数据

type:'get',//http请求类型

timeout:30000,//超时时间设置为10秒;

headers:{'content-type':'application/json'},

success:function(result){

mui('#tableview').pullrefresh().endpulldown();

if(result.retcode != "000000"){

plus.nativeui.alert("读取失败:"+result.message);

return;

}

console.log(json.stringify(result));

//vue.news = result.data;

hasnext = result.hasnext;

pagetoken = result.pagetoken;

result.data.foreach(function(item) {

vue.news.push(item);

});

},

error:function(xhr,type,errorthrown){

mui('#tableview').pullrefresh().endpulldown();

//异常处理;

console.log("error:xhr="+xhr+" type="+type + " thrown="+errorthrown);

}

});

}, 2000);

}

mui.plusready(function() {

var self = plus.webview.currentwebview();

keyword = self.keyword;

document.getelementbyid("title").innertext = self.keyword || "实全科技";

});

/**

* 打开新闻详情

*

* @param {object} item 当前点击的新闻对象

*/

function opendetail(item) {

mui.openwindow({

url: '360detail.html',

id: '360detail',

extras: {

title:item.title,

url: item.url

}

});

}