VUE开发微信公众号指定页面分享

最近使用VUE(hash模式)开发微信公众号页面分享时,遇到一个奇怪的问题,仅以此文记录。
最初实现的分享逻辑如下:

  1. 获取当前路径url,即location.href;
  2. 填充到微信分享API
const href = location.href;
updateAppMessageShareData(
    "title",
    "desc",
    "imgURL",
    href
);

分享给朋友后打开,Android跳转到公众号首页(部分手机跳转到指定页面,但不是很稳定),IOS可以跳转到指定页面。
在尝试各种解决方案后终于想明白了,Android手机上默认把hash值忽略了, 具体原因不明。
那么既然是把hash值忽略了,那我不用hash不就行了,但是我要跳转到指定页面呀,重定向的方案就来了。
我把hash值当作一个参数,指定一个中间页,用原生的方式获取query然后再跳转回来。

中间页代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <
### 如何使用 UniApp 开发微信公众号 #### 准备工作 为了使开发顺利,在开始前需准备好必要的环境配置。确保已安装 HBuilderX 或其他支持 UniApp 的 IDE,并注册微信公众平台账号,完成相应认证流程。 #### 创建新项目 启动HBuilderX并新建一个基于Vue框架的UniApp应用模板作为基础架构[^2]。 #### 配置 OAuth2.0 登录功能 对于希望集成社交化分享或个性化服务的应用来说,通过OAuth协议来获取用户的公开资料是非常重要的一步。具体操作如下: - **设置回调页面域名**:进入微信公众平台后台管理界面中的“开发者中心”,按照指引设定合法的JS接口安全域名以及网页授权回调页域名为本地服务器地址或其他托管站点。 - **发起请求获得临时票据 (code)**:当用户访问带有特定参数链接时触发跳转至微信开放平台指定URL模式,该过程由前端负责构建携带必要字段(如appid、redirect_uri等)组成的GET请求发送给API网关;成功后浏览器会被重定向回预先定义好的路径同时附带`?code=CODE&state=STATE`形式查询字符串[^1]。 ```javascript // 示例代码片段用于展示如何处理返回的数据 const code = getUrlParam('code'); // 自定义函数解析URL参数提取Code值 if(code){ console.log(`Received authorization code:${code}`); }else{ alert("Failed to get the authorization code."); } ``` #### 调用微信 JSSDK 实现更多交互特性 除了基本的身份验证外,还可以借助于WeChat JS-SDK进一步增强用户体验,比如自定义菜单按钮样式、上传图片视频等内容共享行为。以下是简化的接入步骤概述[^4]: ##### 步骤一:引入依赖库 下载官方提供的 `jweixin-module` 插件包并将之添加到项目的根目录下,接着修改 `main.js` 文件以全局混入扩展方法以便后续调用。 ```bash npm install @dcloudio/uni-app-jweixin --save ``` ##### 步骤二:初始化 SDK 并注入权限签名 在每次加载含有Webview容器组件之前都需要向后端申请有效的ticket令牌用来签署当前页面所需使用的各项能力列表,之后再利用这些信息填充wx.config()选项从而激活对应的功能模块。 ```javascript import wx from 'jweixin-module'; export function initWxJsSdk(configData) { wx.config({ debug: false, appId: configData.appId, timestamp: configData.timestamp, nonceStr: configData.nonceStr, signature: configData.signature, jsApiList: ['chooseImage', 'uploadImage'] // 只填所需的接口名称即可 }); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值