项目涉及到本地存储分享一个自写框架 喜欢可以收藏
/*
操作规范
- index 关键字 不一定等于 数组下标
- 共有属性[date - length]
- store(db.table).insert(date) // 插入
- store(db.table).update(row,val,where) // 修改
- store(db.table).select(where) // 查询
- store(db.table).select(where).groupby(row) // 分组
- store(db.table).select(where).orderby('row desc || asc') // 排序
- */
// 新增 .user 用于识别用户
store('as.day').user(val).select()
localStorage 存储数据会丢失 不明原因
所以APP环境采用plus.storage 存储
// 交流群:418967623
// 修改操作调整
store(db.table).update({
row1:val1,
row2:val2
},where)
store('as.day').insert({ a: 11,b: 22, c:{ q:'哈哈' } });
store('as.day').insert({ a: 11,b: 2, c:{ q:'哈哈' } });
store('as.day').update('a',11 + 11,'c.q is 哈哈')
store('as.day').delete('b is 2')
console.log(store('as.day').select().date,store('as.day').select().length)
console.log(store('as.day').select('b is 22').date)
console.log(store('as.day').select().groupby('b').date)
console.log(store('as.day').select().orderby('index desc').date) /*
操作规范
- index 关键字 不一定等于 数组下标
- 共有属性[date - length]
- store(db.table).insert(date) // 插入
- store(db.table).update(row,val,where) // 修改
- store(db.table).select(where) // 查询
- store(db.table).select(where).groupby(row) // 分组
- store(db.table).select(where).orderby('row desc || asc') // 排序
- */
// 新增 .user 用于识别用户
store('as.day').user(val).select()
localStorage 存储数据会丢失 不明原因
所以APP环境采用plus.storage 存储
// 交流群:418967623
// 修改操作调整
store(db.table).update({
row1:val1,
row2:val2
},where)
store('as.day').insert({ a: 11,b: 22, c:{ q:'哈哈' } });
store('as.day').insert({ a: 11,b: 2, c:{ q:'哈哈' } });
store('as.day').update('a',11 + 11,'c.q is 哈哈')
store('as.day').delete('b is 2')
console.log(store('as.day').select().date,store('as.day').select().length)
console.log(store('as.day').select('b is 22').date)
console.log(store('as.day').select().groupby('b').date)
console.log(store('as.day').select().orderby('index desc').date) 收起阅读 »
分享Android端判断锁屏和熄屏的代码
/**
* 判断是否手机亮屏
* @returns {boolean}
*/
static isScreenOn() {
if (typeof (plus) !== 'undefined') {
var pm = plus.android.runtimeMainActivity()
.getSystemService(plus.android.android.content.Context.POWER_SERVICE);
return plus.android.invoke(pm, 'isScreenOn');
}
return true;
}
/**
* 判断手机屏幕是否锁定
* @returns {boolean}
*/
static isScreenLocked() {
if (typeof (plus) !== 'undefined') {
var pm = plus.android.runtimeMainActivity()
.getSystemService(plus.android.android.content.Context.KEYGUARD_SERVICE);
return plus.android.invoke(pm, 'inKeyguardRestrictedInputMode');
}
return false;
} /**
* 判断是否手机亮屏
* @returns {boolean}
*/
static isScreenOn() {
if (typeof (plus) !== 'undefined') {
var pm = plus.android.runtimeMainActivity()
.getSystemService(plus.android.android.content.Context.POWER_SERVICE);
return plus.android.invoke(pm, 'isScreenOn');
}
return true;
}
/**
* 判断手机屏幕是否锁定
* @returns {boolean}
*/
static isScreenLocked() {
if (typeof (plus) !== 'undefined') {
var pm = plus.android.runtimeMainActivity()
.getSystemService(plus.android.android.content.Context.KEYGUARD_SERVICE);
return plus.android.invoke(pm, 'inKeyguardRestrictedInputMode');
}
return false;
} 收起阅读 »
分享一个小工具,用户HB编写的H5+混合APP批量制作增量包
本程序是为HBuilder 编写的HTML5+ 混合APP 差量更新所定制的一个小工具
本程序主要是针对资源版本.进行文件对比.将差异文件进行打包,制作符合HBuilder的差量更新的更新包.
使用说明:
手动制作 差量包
1.可选择自定不同两个版本.进行差量包打包
2.使用自动增量对比.须将所有旧版本资源文件放在old_ves文件夹下.选择最新版本资源包.
程序自动将差量跟新包以 "旧版本_新版本.wgtu"为名称储存在程序目录 "Pack/新版本号" 文件夹下
程序更新逻辑可为 优先下载 "当前版本_新版本.wgtu" 的增量文件.如文件不存在 下载整体资源包
本程序是为HBuilder 编写的HTML5+ 混合APP 差量更新所定制的一个小工具
本程序主要是针对资源版本.进行文件对比.将差异文件进行打包,制作符合HBuilder的差量更新的更新包.
使用说明:
手动制作 差量包
1.可选择自定不同两个版本.进行差量包打包
2.使用自动增量对比.须将所有旧版本资源文件放在old_ves文件夹下.选择最新版本资源包.
程序自动将差量跟新包以 "旧版本_新版本.wgtu"为名称储存在程序目录 "Pack/新版本号" 文件夹下
程序更新逻辑可为 优先下载 "当前版本_新版本.wgtu" 的增量文件.如文件不存在 下载整体资源包
收起阅读 »双webview上拉加载BUG修复
MUI在没有更多数据后默认将上拉事件取消监听,这个做法本身不存在问题
但是大多情况下,上拉一般是跟下拉刷新同时存在
如果没有更多数据后客户进行下拉刷新会发现数据永远不会再加载了
以下是相关修复代码
endPullup:function(finished) {//上拉加载结束
var self = this;
if (self.pullLoading) {
self.pullLoading.classList.remove(CLASS_VISIBILITY);
self.pullLoading.classList.add(CLASS_HIDDEN);
self.isLoading = false;
if (finished) {
self.finished = true;
self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_NOMORE;
self.pullCaption.innerHTML = self.options.up.contentnomore;
//取消5+的plusscrollbottom事件
document.removeEventListener('plusscrollbottom', self);
window.removeEventListener('dragup', self);
} else { //初始化时隐藏,后续不再隐藏
self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN;
self.pullCaption.innerHTML = self.options.up.contentdown;
//修复代码,加上后,在相关的下拉刷新调用方法内调用mui('#pullrefresh').pullRefresh().endPullupToRefresh(false);
self.finished = false;
document.addEventListener('plusscrollbottom', self);
window.addEventListener('dragup', self);
}
}
}, MUI在没有更多数据后默认将上拉事件取消监听,这个做法本身不存在问题
但是大多情况下,上拉一般是跟下拉刷新同时存在
如果没有更多数据后客户进行下拉刷新会发现数据永远不会再加载了
以下是相关修复代码
endPullup:function(finished) {//上拉加载结束
var self = this;
if (self.pullLoading) {
self.pullLoading.classList.remove(CLASS_VISIBILITY);
self.pullLoading.classList.add(CLASS_HIDDEN);
self.isLoading = false;
if (finished) {
self.finished = true;
self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_NOMORE;
self.pullCaption.innerHTML = self.options.up.contentnomore;
//取消5+的plusscrollbottom事件
document.removeEventListener('plusscrollbottom', self);
window.removeEventListener('dragup', self);
} else { //初始化时隐藏,后续不再隐藏
self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN;
self.pullCaption.innerHTML = self.options.up.contentdown;
//修复代码,加上后,在相关的下拉刷新调用方法内调用mui('#pullrefresh').pullRefresh().endPullupToRefresh(false);
self.finished = false;
document.addEventListener('plusscrollbottom', self);
window.addEventListener('dragup', self);
}
}
}, 收起阅读 »
【汇总】wap2app应用强化
应用强化
首页选项卡切换
http://ask.dcloud.net.cn/article/12878
升级检测
http://ask.dcloud.net.cn/article/12895
引导页
http://ask.dcloud.net.cn/article/13011
原生定位
http://ask.dcloud.net.cn/article/12767
原生分享
http://ask.dcloud.net.cn/article/12766
扫一扫
http://ask.dcloud.net.cn/article/12998
消息推送
参考 HelloW2A 示例工程 -> app.js 中的源码
http://ask.dcloud.net.cn/article/12921
http://ask.dcloud.net.cn/article/12985
自定义404页面
http://ask.dcloud.net.cn/article/73
视频全屏横屏播放
http://ask.dcloud.net.cn/article/12933
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
应用强化
首页选项卡切换
http://ask.dcloud.net.cn/article/12878
升级检测
http://ask.dcloud.net.cn/article/12895
引导页
http://ask.dcloud.net.cn/article/13011
原生定位
http://ask.dcloud.net.cn/article/12767
原生分享
http://ask.dcloud.net.cn/article/12766
扫一扫
http://ask.dcloud.net.cn/article/12998
消息推送
参考 HelloW2A 示例工程 -> app.js 中的源码
http://ask.dcloud.net.cn/article/12921
http://ask.dcloud.net.cn/article/12985
自定义404页面
http://ask.dcloud.net.cn/article/73
视频全屏横屏播放
http://ask.dcloud.net.cn/article/12933
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
【示例】wap2app应用中302等二次跳转的地址匹配
场景一
页面A -> 点击跳转 -> 302等地址 -> 目标地址
302地址: http://m.example.com/redirect?redirect_url=http://m.example.com/detail.html
目标地址:http://m.example.com/detail.html
为了防止出现白屏或者重复打开窗口的情况,需要在 sitemap.json -> pages 中,将302地址与目标地址匹配到一起。
{
"webviewId": "detail",
"matchUrls": [
{
"pathname": "/redirect",
"search": "R:redirect_url=.*\\/detail.html"
}, {
"pathname": "/detail.html"
}
]
}
场景一
页面A -> 点击跳转 -> 302等地址 -> 目标地址
302地址: http://m.example.com/redirect?redirect_url=http://m.example.com/detail.html
目标地址:http://m.example.com/detail.html
为了防止出现白屏或者重复打开窗口的情况,需要在 sitemap.json -> pages 中,将302地址与目标地址匹配到一起。
{
"webviewId": "detail",
"matchUrls": [
{
"pathname": "/redirect",
"search": "R:redirect_url=.*\\/detail.html"
}, {
"pathname": "/detail.html"
}
]
}
收起阅读 »
【示例】wap2app应用在iOS平台下唤醒淘宝
wap2app 应用,在 iOS 环境下唤醒淘宝等应用,需要配置两处白名单。
第一处
manifest.json -> plus -> distribute -> apple 节点下,添加 urlschemewhitelist。对应的值为数组格式,如:
{
"plus": {
"distribute": {
"apple": {
"urlschemewhitelist": [
"mqq",
"taobao"
]
}
}
}
}
第二处
同样是 manifest.json 文件 plus 节点下,添加 schemeWhitelist 节点,其对应的值也是数组格式,如:
{
"plus": {
"schemeWhitelist": [
"mqq",
"taobao"
]
}
}
注意
urlschemewhitelist 和 schemeWhitelist 所在的节点不同,注意属性名的大小写,保持这两个属性对应的值相同。
wap2app 应用,在 iOS 环境下唤醒淘宝等应用,需要配置两处白名单。
第一处
manifest.json -> plus -> distribute -> apple 节点下,添加 urlschemewhitelist。对应的值为数组格式,如:
{
"plus": {
"distribute": {
"apple": {
"urlschemewhitelist": [
"mqq",
"taobao"
]
}
}
}
}
第二处
同样是 manifest.json 文件 plus 节点下,添加 schemeWhitelist 节点,其对应的值也是数组格式,如:
{
"plus": {
"schemeWhitelist": [
"mqq",
"taobao"
]
}
}
注意
urlschemewhitelist 和 schemeWhitelist 所在的节点不同,注意属性名的大小写,保持这两个属性对应的值相同。
【汇总】wap2app常见问题
常见问题
302之类的二次跳转如何匹配防止白屏
http://ask.dcloud.net.cn/article/13074
相同规则的地址间跳转会反复打开新窗口么?
当前 webview 中跳转一个相同规则的 url,直接在当前 webview 中加载,不会重复打开新的 webview。
可以本地打包或嵌入其它应用内么?
不支持本地打包,只能通过云端打包成相应的apk/ipa。同时,也不能嵌入到其它应用中。
http://ask.dcloud.net.cn/question/48290
如何移除原生导航栏
原则上不建议移除原生导航栏,原生导航栏也是优化的比较重要的一部分。
http://ask.dcloud.net.cn/question/50018
网站引用了 mui 导致返回键操作异常
mui.js 在 5+ 环境下会处理 backbutton,wap2app 同样也会处理,因此会造成冲突。
mui 提供了关闭监听的配置,详细参考文档说明:关闭页面
mui.init({
keyEventBind: {
backbutton: false //关闭back按键监听
}
});
wap2app如何让一个链接是在同一个webview中跳转,而不是打开另外一个webview。
将目标 url 配置到一个 page 的 matchUrls。
wap2app如何返回上一页并刷新
获取目标 webview 对象,并执行刷新逻辑。
http://ask.dcloud.net.cn/question/49546
wap2app应用iOS如何唤起淘宝等第三方应用
需要配置两处白名单
http://ask.dcloud.net.cn/article/13073
wap2app原生下拉pullToRefresh怎么更新list的DOM而不是刷新网页
可以执行自定义的下拉刷新逻辑
http://ask.dcloud.net.cn/question/48490
wap2app中使用Native.js
远程的 HTML 不能使用 Native.js
http://ask.dcloud.net.cn/question/48540
退出时候的反馈如何去掉
调整首页 easyConfig -> quit 的配置即可
http://ask.dcloud.net.cn/article/12750
http://ask.dcloud.net.cn/article/13069
自定义插件以及其它第三方SDK的集成
不支持扩展
首页titleNview配置的按钮怎么添加监听事件
http://ask.dcloud.net.cn/article/12622
云打包时如何加密
云端打包时,选择“启用js原生混淆”。如果有需要,可以使用第三方,如360等提供的加固方案,进行加固。
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
常见问题
302之类的二次跳转如何匹配防止白屏
http://ask.dcloud.net.cn/article/13074
相同规则的地址间跳转会反复打开新窗口么?
当前 webview 中跳转一个相同规则的 url,直接在当前 webview 中加载,不会重复打开新的 webview。
可以本地打包或嵌入其它应用内么?
不支持本地打包,只能通过云端打包成相应的apk/ipa。同时,也不能嵌入到其它应用中。
http://ask.dcloud.net.cn/question/48290
如何移除原生导航栏
原则上不建议移除原生导航栏,原生导航栏也是优化的比较重要的一部分。
http://ask.dcloud.net.cn/question/50018
网站引用了 mui 导致返回键操作异常
mui.js 在 5+ 环境下会处理 backbutton,wap2app 同样也会处理,因此会造成冲突。
mui 提供了关闭监听的配置,详细参考文档说明:关闭页面
mui.init({
keyEventBind: {
backbutton: false //关闭back按键监听
}
});
wap2app如何让一个链接是在同一个webview中跳转,而不是打开另外一个webview。
将目标 url 配置到一个 page 的 matchUrls。
wap2app如何返回上一页并刷新
获取目标 webview 对象,并执行刷新逻辑。
http://ask.dcloud.net.cn/question/49546
wap2app应用iOS如何唤起淘宝等第三方应用
需要配置两处白名单
http://ask.dcloud.net.cn/article/13073
wap2app原生下拉pullToRefresh怎么更新list的DOM而不是刷新网页
可以执行自定义的下拉刷新逻辑
http://ask.dcloud.net.cn/question/48490
wap2app中使用Native.js
远程的 HTML 不能使用 Native.js
http://ask.dcloud.net.cn/question/48540
退出时候的反馈如何去掉
调整首页 easyConfig -> quit 的配置即可
http://ask.dcloud.net.cn/article/12750
http://ask.dcloud.net.cn/article/13069
自定义插件以及其它第三方SDK的集成
不支持扩展
首页titleNview配置的按钮怎么添加监听事件
http://ask.dcloud.net.cn/article/12622
云打包时如何加密
云端打包时,选择“启用js原生混淆”。如果有需要,可以使用第三方,如360等提供的加固方案,进行加固。
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
【文档】wap2app之app.js
该文章意在汇总整理 app.js 的配置,方便日常开发中查阅。
详细教程请参考 app.js - wap2app教程
App
App(appConfig);
| 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| options | Object | 全局参数配置 | * | |
| onLaunch | Function | 生命周期函数,监听 wap2app 应用初始化。 | wap2app 应用初始化完成时触发,全局只触发一次。 | |
| onShow | Function | 生命周期函数,监听 wap2app 应用显示。 | 当 wap2app 应用从后台进入前台显示时触发。 | |
| onHide | Function | 生命周期函数,监听 wap2app 应用隐藏。 | 当 wap2app 应用从前台进入后台时触发。 |
Tips
当用户按了设备 Home 键,wap2app 应用并不会立即被销毁,而是进入了后台运行。当再次打开 wap2app 应用时,会从后台进入前台。
| appConfig -> options 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| debug | Boolean | 是否输出日志,默认为 false。 | 通过 HBuilder 真机运行调试时,如果设置为 true,则在控制台输出日志信息。 |
Page
Page(id, pageConfig);
| 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| id | String | webview 的 id | 该值取自 sitemap.json 中配置 page 对应的 webviewId | |
| pageConfig | Object | 页面参数配置 | * |
| pageConfig 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| onShow | Function | 生命周期函数,监听 webview 的显示。 | 对应的 webview 显示时触发 | |
| onClose | Function | 生命周期函数,监听 webview 的关闭。 | 对应的 webview 关闭时触发 |
运行环境
需要注意的是,以上函数中的 JavaScript 的代码,并不是在首页或者某个 webviewe 中执行。
所以当 JavaScript 代码中涉及到最某个特定 webview 中的内容进行操作时,需要获取 webview 通过 evalJS 方法来执行。
例如,从详情页返回时,希望刷新列表页。在 app.js 中,注册 detail 页面的配置。
Page('detail', {
onClose: function() {
// 刷新列表
var listWebview = plus.webview.getWebviewById('list');
if(listWebview) {
listWebview.evalJS('refresh()'); //refresh() 方法是目标窗口中全局的函数,用于刷新页面;
// 或者简单点,直接用 webview 的刷新方法;
// listWebview.reload(true);
}
}
});
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
该文章意在汇总整理 app.js 的配置,方便日常开发中查阅。
详细教程请参考 app.js - wap2app教程
App
App(appConfig);
| 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| options | Object | 全局参数配置 | * | |
| onLaunch | Function | 生命周期函数,监听 wap2app 应用初始化。 | wap2app 应用初始化完成时触发,全局只触发一次。 | |
| onShow | Function | 生命周期函数,监听 wap2app 应用显示。 | 当 wap2app 应用从后台进入前台显示时触发。 | |
| onHide | Function | 生命周期函数,监听 wap2app 应用隐藏。 | 当 wap2app 应用从前台进入后台时触发。 |
Tips
当用户按了设备 Home 键,wap2app 应用并不会立即被销毁,而是进入了后台运行。当再次打开 wap2app 应用时,会从后台进入前台。
| appConfig -> options 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| debug | Boolean | 是否输出日志,默认为 false。 | 通过 HBuilder 真机运行调试时,如果设置为 true,则在控制台输出日志信息。 |
Page
Page(id, pageConfig);
| 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| id | String | webview 的 id | 该值取自 sitemap.json 中配置 page 对应的 webviewId | |
| pageConfig | Object | 页面参数配置 | * |
| pageConfig 参数说明 | 参数 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| onShow | Function | 生命周期函数,监听 webview 的显示。 | 对应的 webview 显示时触发 | |
| onClose | Function | 生命周期函数,监听 webview 的关闭。 | 对应的 webview 关闭时触发 |
运行环境
需要注意的是,以上函数中的 JavaScript 的代码,并不是在首页或者某个 webviewe 中执行。
所以当 JavaScript 代码中涉及到最某个特定 webview 中的内容进行操作时,需要获取 webview 通过 evalJS 方法来执行。
例如,从详情页返回时,希望刷新列表页。在 app.js 中,注册 detail 页面的配置。
Page('detail', {
onClose: function() {
// 刷新列表
var listWebview = plus.webview.getWebviewById('list');
if(listWebview) {
listWebview.evalJS('refresh()'); //refresh() 方法是目标窗口中全局的函数,用于刷新页面;
// 或者简单点,直接用 webview 的刷新方法;
// listWebview.reload(true);
}
}
});
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
【文档】wap2app之sitemap.json
该文章意在汇总整理 sitemap.json 的配置,方便日常开发中查阅。
详细教程请参考 sitemap.json概述 - wap2app教程
根节点
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| global | Object | App 全局配置 | sitemap.json概述 |
| pages | Array | M 站所有需要增强的页面配置 | sitemap.json概述 |
global
App 全局配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| webviewParameter | Object | webview 相关配置 | webviewParameter配置 |
| easyConfig | Object | 为提升用户体验而提供的简化实现 | easyConfig配置 |
pages
页面组配置
page
sitemap.json -> pages 集合的单个页面配置对象
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| webviewId | String | 当前页面所属 webview 的 id | * |
| matchUrls | Array | 页面 url 匹配规则 | matchUrls配置 |
| webviewParameter | Object | webview 相关配置 | webviewParameter配置 |
| easyConfig | Object | 为提升用户体验而提供的简化实现 | easyConfig配置 |
matchUrl
page -> matchUrls 集合的单个匹配规则对象
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| href | String/RegExp/Wildcard | 页面完整 url | * |
| hostname | String/RegExp/Wildcard | 域名信息 | * |
| pathname | String/RegExp/Wildcard | 路径信息 | * |
| search | String/RegExp/Wildcard | 查询字符串信息 | * |
| hash | String/RegExp/Wildcard | 锚点信息 | * |
webviewParameter
webview 相关配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| titleNView | Object | 原生标题栏样式配置 | titleNView配置 |
| statusbar | Object | 系统状态栏样式配置 | * |
| appendCss | String | 向服务端页面插入的 css 代码 | * |
| appendJs | String | 向服务端页面插入的 JavaScript 代码 | * |
| pullToRefresh | Object | 下拉刷新配置 | * |
| tabBar | Object | 选项卡切换效果优化,目前仅支持首页底部选项卡 | 选项卡切换优化 |
| subNViews | String | NView模板配置 | NView模板 |
statusbar
系统状态栏样式配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| style | String | 状态栏前景色(文字颜色) | * |
| background | String | 状态栏背景色,默认应当与原生导航条背景色保持一致 | * |
pullToRefresh
下拉刷新配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| support | Boolean | 是否启用原生下拉刷新,默认为 false | * |
easyConfig
为提升用户体验而提供的简化实现
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| back | Object | wap2app 后退逻辑 | * |
| open | Object | 打开新窗口的优化 | * |
| quit | Object | wap2app 退出逻辑 | 仅支持首页 |
back
wap2app 后退逻辑
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| before | Array | 后退前的优化 | * |
| history | Boolean | 是否执行 history.back() | * |
| back -> before 集合的单个配置 | 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| popupSelector | String | 弹出层选择器 | * | |
| closeSelector | String | 取消按钮选择器或遮罩层选择器 | * | |
| eventType | String | 事件类型,默认为 click | * |
open
打开新窗口的优化
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| animation | Object | 窗口动画配置 | * |
| open -> animation 的配置 | 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| type | String | 窗口动画类型 | 窗口显示动画效果 | |
| duration | Number | 窗口动画执行时间,单位为 ms,默认 300ms | * |
quit
wap2app 退出逻辑,仅支持在首页配置。
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| toast | Object | toast 消息框配置 | * |
| quit -> toast 配置 | 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| showFeedback | Boolean | 是否显示 toast,默认为 true | * |
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题
该文章意在汇总整理 sitemap.json 的配置,方便日常开发中查阅。
详细教程请参考 sitemap.json概述 - wap2app教程
根节点
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| global | Object | App 全局配置 | sitemap.json概述 |
| pages | Array | M 站所有需要增强的页面配置 | sitemap.json概述 |
global
App 全局配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| webviewParameter | Object | webview 相关配置 | webviewParameter配置 |
| easyConfig | Object | 为提升用户体验而提供的简化实现 | easyConfig配置 |
pages
页面组配置
page
sitemap.json -> pages 集合的单个页面配置对象
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| webviewId | String | 当前页面所属 webview 的 id | * |
| matchUrls | Array | 页面 url 匹配规则 | matchUrls配置 |
| webviewParameter | Object | webview 相关配置 | webviewParameter配置 |
| easyConfig | Object | 为提升用户体验而提供的简化实现 | easyConfig配置 |
matchUrl
page -> matchUrls 集合的单个匹配规则对象
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| href | String/RegExp/Wildcard | 页面完整 url | * |
| hostname | String/RegExp/Wildcard | 域名信息 | * |
| pathname | String/RegExp/Wildcard | 路径信息 | * |
| search | String/RegExp/Wildcard | 查询字符串信息 | * |
| hash | String/RegExp/Wildcard | 锚点信息 | * |
webviewParameter
webview 相关配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| titleNView | Object | 原生标题栏样式配置 | titleNView配置 |
| statusbar | Object | 系统状态栏样式配置 | * |
| appendCss | String | 向服务端页面插入的 css 代码 | * |
| appendJs | String | 向服务端页面插入的 JavaScript 代码 | * |
| pullToRefresh | Object | 下拉刷新配置 | * |
| tabBar | Object | 选项卡切换效果优化,目前仅支持首页底部选项卡 | 选项卡切换优化 |
| subNViews | String | NView模板配置 | NView模板 |
statusbar
系统状态栏样式配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| style | String | 状态栏前景色(文字颜色) | * |
| background | String | 状态栏背景色,默认应当与原生导航条背景色保持一致 | * |
pullToRefresh
下拉刷新配置
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| support | Boolean | 是否启用原生下拉刷新,默认为 false | * |
easyConfig
为提升用户体验而提供的简化实现
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| back | Object | wap2app 后退逻辑 | * |
| open | Object | 打开新窗口的优化 | * |
| quit | Object | wap2app 退出逻辑 | 仅支持首页 |
back
wap2app 后退逻辑
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| before | Array | 后退前的优化 | * |
| history | Boolean | 是否执行 history.back() | * |
| back -> before 集合的单个配置 | 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| popupSelector | String | 弹出层选择器 | * | |
| closeSelector | String | 取消按钮选择器或遮罩层选择器 | * | |
| eventType | String | 事件类型,默认为 click | * |
open
打开新窗口的优化
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| animation | Object | 窗口动画配置 | * |
| open -> animation 的配置 | 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| type | String | 窗口动画类型 | 窗口显示动画效果 | |
| duration | Number | 窗口动画执行时间,单位为 ms,默认 300ms | * |
quit
wap2app 退出逻辑,仅支持在首页配置。
| 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|
| toast | Object | toast 消息框配置 | * |
| quit -> toast 配置 | 属性 | 类型 | 说明 | 更多 |
|---|---|---|---|---|
| showFeedback | Boolean | 是否显示 toast,默认为 true | * |
扩展阅读
wap2app概述(入门必读)
sitemap.json文档
app.js文档
wap2app应用强化
wap2app常见问题





