# app.config.js 参数说明

# 完整的 app.config.js

// 引入自定义公共函数
import myPubFunction from '@/common/function/myPubFunction.js'
export default {
  // 开发模式启用调式模式(请求时会打印日志)
  debug: process.env.NODE_ENV !== 'production',
  // 主云函数名称
  functionName: "router",
  // 登录页面路径
  login: {
    url: '/pages_template/uni-id/login/index/index'
  },
  // 首页页面路径
  index: {
    url: '/pages/index/index'
  },
  // 404 Not Found 错误页面路径
  error: {
    url: '/pages/error/404/404'
  },
  // 前端默认时区(中国为8)
  targetTimezone:8, 
  // 日志风格
  logger: {
    colorArr: [
      "#0095f8",
      "#67C23A"
    ]
  },
  /**
   * app主题颜色
   * vk.getVuex('$app.config.color.main')
   * vk.getVuex('$app.config.color.secondary')
   */
  color: {
    main: "#ff4444",
    secondary: "#555555"
  },
  // 需要检查是否登录的页面列表
  checkTokenPages: {
    /**
     * 如果 mode = 0 则代表自动检测
     * 如果 mode = 1 则代表list内的页面需要登录,不在list内的页面不需要登录
     * 如果 mode = 2 则代表list内的页面不需要登录,不在list内的页面需要登录
     * 注意1: list内是通配符表达式,非正则表达式
     * 注意2: 需要使用 vk.navigateTo 代替 uni.navigateTo 进行页面跳转才会生效
     * 注意3: 想要让 tabbar 页面必须登录才能访问,则需要手动在页面的onLoad里加 vk.pubfn.checkLogin();
     * 在无需登录的页面上执行kh或sys函数,也会自动判断是否登录,未登录会自动跳登录页面,登录成功后会自动返回本来要跳转的页面。
     */
    mode: 2,
    list: [
      "/pages_template/*",
      "/pages/login/*",
      "/pages/index/*",
      "/pages/error/*"
    ]
  },
  // 需要检查是否可以分享的页面列表(仅小程序有效)
  checkSharePages: {
    /**
     * 如果 mode = 0 则不做处理
     * 如果 mode = 1 则代表list内的页面可以被分享,不在list内的页面不可以被分享
     * 如果 mode = 2 则代表list内的页面不可以被分享,不在list内的页面可以被分享
     * 注意: list内是通配符表达式,非正则表达式
     */
    mode: 0,
    // ['shareAppMessage', 'shareTimeline'],
    menus: ['shareAppMessage'],
    list: [
      "/pages/index/*",
      "/pages/goods/*",
      "/pages_template/*",
    ]
  },
  // 需要检查是否哪些请求需要加密通信
  checkEncryptRequest: {
    /**
     * 如果 mode = 0 则不做处理
     * 如果 mode = 1 则代表list内的云函数或云对象需要加密通信,不在list内的不需要加密通信
     * 注意1: list内是正则表达式,非通配符表达式
     * 注意2: 建议与 router/middleware/modules/encryptFilter.js 内的regExp保持一致
     */
    mode: 1,
    list: [
      "^template/test/pub/testEncryptRequest$", // 表示 template/test/pub/testEncryptRequest 云函数需要加密通信
      "^template/encrypt/(.*)", // 表示以 template/encrypt/ 开头的云函数或云对象需要加密通信
    ]
  },
  // 静态文件的资源URL地址
  staticUrl: {
    // Logo
    logo: '/static/logo.png',
  },
  // 自定义公共函数,myPubFunction内的函数可通过vk.myfn.xxx() 调用
  myfn: myPubFunction,
  // 第三方服务配置
  service: {
    // 云储存相关配置
    cloudStorage: {
      /**
       * vk.uploadFile 接口默认使用哪个存储
       * unicloud 空间内置存储(默认)
       * extStorage 扩展存储
       * aliyun 阿里云oss 
       */
      defaultProvider: "unicloud",
      // 空间内置存储
      unicloud: {
        // 暂无配置项
      },
      // 扩展存储配置
      extStorage: {
        provider: "qiniu", // qiniu: 扩展存储-七牛云
        // 根目录名称(如果改了这里的dirname,则云函数user/pub/getUploadFileOptionsForExtStorage内判断的目录权限也要改,否则无法上传)
        dirname: "public",
        // 用于鉴权的云函数地址(一般不需要改这个参数)
        authAction: "user/pub/getUploadFileOptionsForExtStorage",
        // 自定义域名,如:cdn.example.com(填你在扩展存储绑定的域名,若云端已设置 uni-config-center/vk-unicloud/index.js 内的 vk.service.cloudStorage.extStorage.domain 则此处可不填)
        domain: "",
        // 上传时,是否按用户id进行分组储存
        groupUserId: false,
      },
      // 阿里云oss
      // 密钥和签名信息(由于签名的获取比较麻烦,建议初学者使用上传到unicloud或extStorage的方案,上传到阿里云OSS是给有特殊需求的用户使用)
      // 相关文档 : https://help.aliyun.com/document_detail/31925.html?spm=a2c4g.11186623.6.1757.b7987d9czoFCVu
      aliyun: {
        // 密钥和签名信息
        uploadData: {
          OSSAccessKeyId: "",
          policy: "",
          signature: "",
        },
        // oss上传地址
        action: "https://xxx.oss-cn-hangzhou.aliyuncs.com",
        // 根目录名称
        dirname: "public",
        // oss外网访问地址,也可以是阿里云cdn地址
        host: "https://xxx.xxx.com",
        // 上传时,是否按用户id进行分组储存
        groupUserId: false,
      }
    }
  },
  // 全局异常码,可以自定义提示结果
  globalErrorCode: {
    // 阿里云10秒非正常超时,其实请求还在执行(且一般已经成功了,但前端接受不到成功结果)
    "cloudfunction-unusual-timeout": "请求超时,但请求还在执行,请重新进入页面。",
    // 请求超时(真正的请求超时)
    "cloudfunction-timeout": "请求超时,请重试!",
    // 不在预期内的异常(如数据库异常、云函数编译异常等)
    "cloudfunction-system-error": "网络开小差了!",
    // 云函数达到并发限制
    "cloudfunction-reaches-burst-limit": "系统繁忙,请稍后再试。",
    // APP未授权网络访问时的异常提示
    "cloudfunction-network-unauthorized": "需要进行网络请求许可,若您已授权,请点击确定"
  },
  // 自定义拦截器
  interceptor: {

    // login:function(obj){
    // 	let { vk, params, res } = obj;
    // 	//console.log("params:",params);
    // 	//console.log("res:",res);
    // 	if(!params.noAlert){
    // 		vk.alert(res.msg);
    // 	}
    // 	console.log("跳自己的登录页面");
    // 	// 上方代码可自己修改,写成你自己的逻辑处理。
    // },

    // fail:function(obj){
    // 	let { vk, params, res } = obj;
    // 	//console.log("params:",params);
    // 	//console.log("res:",res);
    // 	return false;// 返回false则取消框架内置fail的逻辑,返回true则会继续执行框架内置fail的逻辑
    // 	// 上方代码可自己修改,写成你自己的逻辑处理。
    // }

  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179

config已注入vuex,可以通过 vk.getVuex('$app.config') 获取配置信息(不包含函数)

<image :src="vk.getVuex('$app.config.staticUrl.cartEmpty')" style="width: 330rpx;height: 275rpx;"></image>
1