微信公众号网页授权(以vue框架,在App.vue主入口文件中为例)

1、变量设置

data () {
    isWechat: true,         // 是否为微信环境(true:是;false:否)
    wx: {                   
        wxAppId: '',        // 微信公众号 ID
        wxSecret: '',       // 微信公众号 密钥
        code: '',           // 授权获取的 code
        openid: '',         // 授权获取的 openid
        unionid: ''         // 授权获取的用户唯一标识 unionid
    },
    query: {
        a: '',
        b: ''
    }               // 页面路径带参
    ...
}

2、确定程序所属环境

created () {
    // 检测是浏览器端还是微信端
    let ua = navigator.userAgent.toLowerCase();
    if (String(ua.match(/MicroMessenger/i)) === 'micromessenger') {
        this.isWechat = true
    } else {
        this.isWechat = false
    }
    ...
}

3、微信公众号网页授权函数,获取code(假设页面路径为:https://www.baidu.com?a=1&b=2

methods: {
    /**
     * 微信公众号获取code及授权处理
     * 注意:页面路径上的自定义带参不要使用code和state,授权时会根据这两个参数处理逻辑
     * 再授权成功,并重定向之后,微信会在重定向路径上带上code和state参数
     */
    handleAuthorize () {
        /**
         * 判断是否是微信环境
         * 是微信环境:进行授权处理
         * 不是微信环境:不进行授权处理
         */
        if (!this.isWechat) return;
        /**
         * 判断是否有 微信公众号 ID和密钥
         
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,它允许开发者编写一次代码,然后发布到iOS、Android、Web(包括微信小程序)等平台。在 uni-app 中,`app.vue` 是应用的根组件,而 `onLaunch` 是生命周期钩子,用于应用启动之后执行。 在 `onLaunch` 中设置 `document.documentElement.style.fontSize` 是为了定义应用的基本字体大小。但有时候,uni-app 内部可能在某些阶段重新设置了文档的字体大小,比如为了适配不同屏幕或者是为了满足一些默认样式的要求。 如果你在 `onLaunch` 中设置了字体大小后发现被覆盖,你可以尝试以下方法来解决: 1. **使用 `:root` 伪类变量**: 在 CSS 中使用 `:root` 伪类来设置一个全局变量,这样可以在整个应用中统一修改字体大小。 ```css :root { --fontSize: 20px; /* 设置一个自定义的变量 */ } ``` 然后在 `onLaunch` 中使用 JavaScript 来动态设置根元素的样式: ```javascript onLaunch: function() { document.documentElement.style.setProperty('--fontSize', '20px'); } ``` 在其他样式表中使用这个变量: ```css body { font-size: var(--fontSize); } ``` 2. **使用 vue.config.js 配置**: 在项目的 `vue.config.js` 文件中添加自定义的 CSS 预处理器,这样可以在全局范围内覆盖默认的样式。 ```javascript module.exports = { css: { loaderOptions: { postcss: { plugins: [ require('postcss-pxtorem')({ rootValue: 16, // 默认根字体大小 propList: ['*'] // 需要转换的属性 }) ] } } } } ``` 3. **使用 `hid` 属性**: 在 `App.vue` 中为 `manifest.json` 添加 `config` 字段,并使用 `hid` 属性来禁止系统默认样式: ```javascript { "app-plus": { "deviceReadyInit": true, "hardwareBackButton": false, "fullScreen": true, "statusBar": { "titleNView": false }, "distributeBackgroundAssets": false, "subNVues": { "default": "auto", "multiWindow": { "enable": true, "waiting": true } }, "config": { "titleBar": false, "statusbar": false, "navBar": false, "statusBarColor": "#ffffff", "hardwareAccelerated": true, "renderer": "webview" } } } ``` 请注意,以上方法可能需要结合你的实际项目情况调整。如果问题依旧存在,可能需要检查是否有其他框架或插件在内部修改了样式。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值