64 lines
1.9 KiB
Vue
64 lines
1.9 KiB
Vue
<script>
|
||
import UrlQuery from '@/scratch/url-query.js';
|
||
|
||
export default {
|
||
globalData: {
|
||
/**
|
||
* urlParams - 当前页面 URL 参数集合
|
||
*
|
||
* 来源:
|
||
* 1. H5 环境下从 window.location(search + hash)解析
|
||
* 2. 小程序/App 环境下从页面栈 currentPage.options 获取
|
||
* 3. 分享/扫码进入时从 App.onLaunch/onShow 的 options.query 合并
|
||
*
|
||
* 目前业务中实际使用的参数:
|
||
* - token {string} 用户登录凭证
|
||
* - code {string} 淘宝后返回授权码
|
||
* - state {string} 状态值,格式通常为 "uidxxx",用于提取用户 ID(淘宝授权返回)
|
||
* - exuid {string} 推广人/邀请人用户 ID(三方进入用户标识)
|
||
* - page_uri {string} 授权成功后需要跳转的目标页面路径(必须授权过的用户该参数才有效)
|
||
*
|
||
* 注:UrlQuery 支持获取任意 URL 参数,以上仅为业务代码中显式消费的字段
|
||
*/
|
||
urlParams: {}
|
||
},
|
||
onLaunch: function(options) {
|
||
console.log('App Launch');
|
||
|
||
// 获取 URL 参数并存入 globalData
|
||
let params = UrlQuery.getAll();
|
||
|
||
// #ifndef H5
|
||
// 非 H5 平台,合并 App.onLaunch 的 options.query(分享/扫码进入时的参数)
|
||
if (options && options.query && typeof options.query === 'object') {
|
||
params = { ...params, ...options.query };
|
||
}
|
||
// #endif
|
||
|
||
this.globalData.urlParams = params;
|
||
console.log('URL 参数:', params);
|
||
},
|
||
onShow: function(options) {
|
||
console.log('App Show');
|
||
|
||
// 每次显示时更新参数(H5 下 URL 可能变化)
|
||
let params = UrlQuery.getAll();
|
||
|
||
// #ifndef H5
|
||
if (options && options.query && typeof options.query === 'object') {
|
||
params = { ...params, ...options.query };
|
||
}
|
||
// #endif
|
||
|
||
this.globalData.urlParams = params;
|
||
},
|
||
onHide: function() {
|
||
console.log('App Hide');
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
/*每个页面公共css */
|
||
</style>
|