快应用常用utils
点击查看代码
const prompt = require('@system.prompt')
const router = require('@system.router')
const storage = require('@system.storage')
/**
* @desc 显示菜单
*/
function showMenu() {
const page = router.getState()
const itemList =
page.path === '/pages/main'
? ['保存桌面', '取消']
: ['保存桌面', '返回首页', '取消']
const itemFuncMapping =
page.path === '/pages/main'
? [createShortcut, null]
: [createShortcut, gotoMain, null]
prompt.showContextMenu({
itemList,
success: function(ret) {
if (itemFuncMapping[ret.index]) {
itemFuncMapping[ret.index]()
}
}
})
}
/**
* @desc 创建桌面图标
* 注意:使用加载器测试`创建桌面快捷方式`功能时,请先在`系统设置`中打开`应用加载器`的`桌面快捷方式`权限
*/
function createShortcut() {
const shortcut = require('@system.shortcut')
shortcut.hasInstalled({
success: function(ret) {
if (ret) {
prompt.showToast({
message: '已创建桌面图标'
})
} else {
shortcut.install({
success: function() {
prompt.showToast({
message: '成功创建桌面图标'
})
},
fail: function(errmsg, errcode) {
prompt.showToast({
message: `${errcode}: ${errmsg}`
})
}
})
}
}
})
}
function gotoMain() {
let page = router.getState()
console.log(page)
if (page.path !== '/pages/main') {
router.push({
uri: '/pages/main'
})
}
}
function queryString(url, query) {
let str = []
for (let key in query) {
str.push(key + '=' + query[key])
}
let paramStr = str.join('&')
return paramStr ? `${url}?${paramStr}` : url
}
function setStorage(key, value) {
// 设置storage
storage.set({
key,
value: value,
fail(data, code) {
console.log(`setStorage fail, code = ${code}`)
}
})
}
function getStorage(key) {
return new Promise((resolve, reject) => {
// 获取storage
storage.get({
key,
success(data) {
if (data) {
resolve(data)
}
},
fail(data, code) {
console.log(`getStorage fail, code = ${code}`)
reject({ data, code })
}
})
})
}
export default {
showMenu,
createShortcut,
queryString,
setStorage,
getStorage,
showToast(message = '', duration = 0) {
if (!message) return
prompt.showToast({
message: message,
duration
})
},
route2thePath(path, params, clear = false) {
router.push({
uri: path,
params: params
})
if (clear) {
router.clear()
}
}
}
本文来自博客园,作者:jialiangzai,转载请注明原文链接:https://www.cnblogs.com/zsnhweb/articles/17884299.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异