SDK 属性
本文档详细介绍了 GM Web SDK 中可用的属性。这些属性由 GM 主应用自动注入,为您的应用提供必要的上下文信息和配置数据。
使用说明
所有属性都可以通过 $gm
全局对象访问,例如:$gm.token
、$gm.data
等。
认证相关
token
用户认证令牌,用于与后端服务进行安全通信。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
token | 当前登录用户的认证令牌 | string | - | 是 |
使用示例:
// 获取用户认证令牌
const userToken = $gm.token;
console.log('用户令牌:', userToken);
// 在 API 请求中使用令牌
fetch('/api/user/profile', {
headers: {
'Authorization': `Bearer ${$gm.token}`
}
});
应用数据
data
主应用传递给当前应用的自定义数据,可以是任意类型的数据结构。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
data | 主应用传递的自定义数据 | any | null | 否 |
使用示例:
// 获取主应用传递的数据
const appData = $gm.data;
console.log('应用数据:', appData);
// 处理不同类型的数据
if (appData) {
if (typeof appData === 'object') {
// 处理对象数据
console.log('配置信息:', appData.config);
} else if (typeof appData === 'string') {
// 处理字符串数据
console.log('文本数据:', appData);
}
}
fileId
应用启动时自动生成的唯一文件标识符,用于文件操作和应用实例管理。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
fileId | 应用实例的唯一文件标识符 | string | - | 是 |
使用示例:
// 获取应用文件ID
const appFileId = $gm.fileId;
console.log('应用文件ID:', appFileId);
// 在文件操作中使用
$gm.file.save({
fileId: $gm.fileId,
content: 'Hello World'
});
name
当前应用的名称标识。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
name | 当前应用的名称 | string | - | 是 |
使用示例:
// 获取应用名称
const appName = $gm.name;
console.log('当前应用:', appName);
// 在页面标题中显示应用名称
document.title = `${appName} - GM 应用`;
环境信息
webURL
主应用的当前 URL 地址。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
webURL | 主应用的当前URL | string | - | 是 |
使用示例:
// 获取主应用URL
const mainAppURL = $gm.webURL;
console.log('主应用URL:', mainAppURL);
// 解析URL信息
const url = new URL(mainAppURL);
console.log('域名:', url.hostname);
console.log('路径:', url.pathname);
host
当前连接的服务器主机地址。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
host | 服务器主机地址 | string | - | 是 |
使用示例:
// 获取服务器主机
const serverHost = $gm.host;
console.log('服务器主机:', serverHost);
// 构建API请求URL
const apiURL = `https://${$gm.host}/api/data`;
lang
当前的语言类型,与主应用保持同步,支持国际化功能。
属性 | 说明 | 类型 | 默认值 | 必需 |
---|---|---|---|---|
lang | 当前语言类型 | string | 'zh-CN' | 是 |
支持的语言类型:
zh-CN
: 简体中文en-US
: 英语ja-JP
: 日语- 更多语言类型持续添加中...
使用示例:
// 获取当前语言
const currentLang = $gm.lang;
console.log('当前语言:', currentLang);
// 根据语言显示不同内容
const messages = {
'zh-CN': '欢迎使用 GM 应用',
'en-US': 'Welcome to GM App',
'ja-JP': 'GM アプリへようこそ'
};
const welcomeMessage = messages[currentLang] || messages['zh-CN'];
console.log(welcomeMessage);
// 动态加载语言包
if (currentLang === 'en-US') {
import('./i18n/en.js').then(langPack => {
// 使用英文语言包
});
}
国际化支持
语言类型属性可以帮助您实现应用的国际化功能。您可以根据 $gm.lang
的值来:
- 动态加载对应的语言包
- 切换界面文本显示
- 调整日期、数字格式
- 适配不同地区的用户习惯
注意事项
- 所有属性都是只读的,请勿尝试修改这些值
- 某些属性(如 token)可能包含敏感信息,请妥善处理
- 在使用属性前,建议先检查其是否存在