uni-app 打包后隐私协议链接a标签地址不正确

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app 打包后隐私协议链接a标签地址不正确

示例代码:

“message” : “进入应用前,你需先同意《服务协议》《隐私政策》,否则将退出应用。”, 你需先同意《服务协议》和[ 上述两种方式无论是真机测试还是打包后都无效


## 操作步骤:



"message" : "进入应用前,你需先同意[《服务协议》](static/agreement/clientRights.html)和[《隐私政策》](http://**/privacyAgreement.html),否则将退出应用。",
你需先同意[《服务协议》](static/agreement/clientRights.html)和[
上述两种方式无论是真机测试还是打包后都无效

## 预期结果:


-> 跳转到本地或者线上地址协议内容

实际结果:

-> 点击a标签没有反应


## bug描述:

安卓app协议一直链接不到协议内容 本地地址或者线上地址都不好使

已经解决了
一直修改的是secondmessagea标签地址
最外面层的message文字较多超出编辑器显示区域导致没看到,也没有仔细对比文字,还是太粗心了。

| 信息类别       | 信息内容         |
|----------------|------------------|
| 产品分类       | uniapp/App       |
| PC开发环境     | Windows          |
| PC操作系统版本 | window64         |
| HBuilderX类型  | 正式             |
| HBuilderX版本  | 3.99             |
| 手机系统       | Android          |
| 手机系统版本   | Android 13       |
| 手机厂商       | 小米             |
| 手机机型       | 小米11           |
| 页面类型       | vue              |
| vue版本        | vue2             |
| 打包方式       | 云端             |
| 项目创建方式   | HBuilderX        |

![image](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20240201/e2750c3f7ab6e65723dd45a1be0e50ab.jpg)

7 回复

现在不需要转义了,直接放原链接 <a href=“static/agreement/clientRights.html”> <a href=“http://***.com/privacyAgreement.html”>


<a href=“http://***.com/privacyAgreement.html”> 这种方式就是原链接的 但是我打包后还是点了没有反应

我打了两个包试了下无论转不转义都是可以的,截图是我没转义的。编译器版本是4.0.2024012711-alpha

刚试了下,这样是可以的,里面不用转义 <a href=“https://xxxxxxxxxxxxxxxxxxxxx/user_agreement.html”>

可能你没勾选这个

解决了 问题是出在我一直修改的是second下面的message 最外层的message太长了后续的a标签没看到,没仔细对比

在 uni-app 中,打包后隐私协议链接的 a 标签地址不正确,可能是因为以下几种原因:

1. 相对路径问题

如果你在 a 标签中使用了相对路径,打包后路径可能会发生变化。建议使用绝对路径或完整的 URL。

<!-- 错误示例 -->
<a href="./privacy.html">隐私协议</a>

<!-- 正确示例 -->
<a href="https://www.yourdomain.com/privacy.html">隐私协议</a>

2. 静态资源路径问题

如果你将隐私协议文件放在 static 目录下,打包后路径可能会发生变化。确保路径正确。

<!-- 假设隐私协议文件放在 static 目录下 -->
<a href="/static/privacy.html">隐私协议</a>

3. H5 打包配置问题

如果你是在 H5 平台打包,确保 publicPath 配置正确。在 vue.config.js 中配置 publicPath

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/your-project-name/' : '/'
};

4. 跨平台兼容性问题

如果你在多个平台(如 H5、小程序、App)上运行,可能需要根据平台动态设置链接地址。

<a :href="privacyLink">隐私协议</a>
export default {
  data() {
    return {
      privacyLink: ''
    };
  },
  created() {
    // 根据平台设置不同的链接
    #ifdef H5
    this.privacyLink = 'https://www.yourdomain.com/privacy.html';
    #endif
    #ifdef MP-WEIXIN
    this.privacyLink = '/pages/privacy/privacy';
    #endif
    #ifdef APP-PLUS
    this.privacyLink = 'https://www.yourdomain.com/privacy.html';
    #endif
  }
};

5. 路由配置问题

如果你使用 uni-app 的路由系统,确保路由配置正确。

// pages.json
{
  "pages": [
    {
      "path": "pages/privacy/privacy",
      "style": {
        "navigationBarTitleText": "隐私协议"
      }
    }
  ]
}
<a href="/pages/privacy/privacy">隐私协议</a>

6. 打包后路径问题

如果你在打包后发现路径不正确,可以检查打包后的文件结构,确保路径指向正确的位置。

7. 使用 uni.navigateTouni.redirectTo

如果你是在 uni-app 中跳转页面,建议使用 uni.navigateTouni.redirectTo 方法,而不是直接使用 a 标签。

<button [@click](/user/click)="navigateToPrivacy">隐私协议</button>
export default {
  methods: {
    navigateToPrivacy() {
      uni.navigateTo({
        url: '/pages/privacy/privacy'
      });
    }
  }
};
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!