当前位置: 首页 > 知识库问答 >
问题:

javascript - uniapp小程序微信分享带有参数的页面,第三方打开报错?

范侯林
2024-07-01

页面detail 别的页面传递到detail参数,detail页面获取参数调用接口展示pdf

其他页面

 uni.navigateTo({
        url: `/pages/menu/detail?type=${item.fileNameType}&fileName=${item.fileName}`
      });

detail页面处理逻辑

onLoad(e) {
    console.log("参数", e.type)
    if (e?.m) {
      const titleType = e.m;
      let barTitle = "";
      switch (titleType) {
        case "1":
          barTitle = '中长期预报';
          break;
        case "2":
          barTitle = '海冰预报';
          break;
        case "3":
          barTitle = '预警报';
          break;
        default:
          break;
      }
      uni.setNavigationBarTitle({
        title: barTitle
      });
    }
    this.getDetail(e.type, e.fileName)
    this.getUrlCount(this.routerPath, "警报详情");
    let themeType = this.$store.state.curThemeType;
    this.setNavColor(themeType);
  },

detail页面被分享之后 pdf是无法获取的 求问原因

共有2个答案

徐杰
2024-07-01

使用小程序开发者工具的真机调试工具看看 vConsole 的异常抛出。
一般都是小程序分享之后自动在分享的URL上自动拼接了微信的 query 参数导致的。

彭霄
2024-07-01

问题分析

从您提供的信息来看,detail 页面通过 uni.navigateTo 跳转并传递了两个参数:typefileName。然而,在 detail 页面的 onLoad 生命周期方法中,您试图从 e 参数中获取 e.typee.m,但是这里存在一个不一致的地方:您在跳转时传递的参数名为 typefileName,但在 onLoad 方法中您试图访问 e.m,这是不存在的。

此外,当页面被分享后,如果通过分享链接打开页面,此时传入的参数方式可能会变(如使用 query 参数或者其他方式),这取决于分享的实现和接收方的处理逻辑。如果分享的实现没有正确传递这些参数,或者接收方没有正确处理这些参数,那么页面在打开时可能无法获取到预期的参数值,从而导致无法获取 PDF。

解决方案

  1. 修正参数访问:在 detail 页面的 onLoad 方法中,确保您访问的是正确的参数名。由于您在跳转时传递的是 typefileName,所以应该使用 e.typee.fileName 而不是 e.m
onLoad(e) {
    console.log("参数", e.type, e.fileName)
    if (e?.type) {
      const titleType = e.type;
      // ... 其他逻辑 ...
    }
    this.getDetail(e.type, e.fileName)
    // ... 其他逻辑 ...
},
  1. 检查分享逻辑:确保您的分享逻辑能够正确传递这些参数。如果您使用的是微信小程序的分享功能,那么您需要在分享时将这些参数作为 query 参数添加到分享链接中。
  2. 处理分享后打开页面的逻辑:当页面通过分享链接打开时,确保您能够正确解析出这些参数。通常,这些参数会作为 query 参数附加在 URL 后面,您可以通过 uni.getLocation 或者直接从 onLoad 方法的参数中获取它们。
  3. 调试和测试:在开发过程中,使用 console.log 或其他调试工具来跟踪参数的传递和接收情况,以确保一切按预期进行。

总结

问题的主要原因是在 detail 页面的 onLoad 方法中错误地访问了不存在的参数 e.m。通过修正参数访问和检查分享逻辑,应该可以解决无法获取 PDF 的问题。

 类似资料:
  • 本文向大家介绍微信小程序实现带参数的分享功能(两种方法),包括了微信小程序实现带参数的分享功能(两种方法)的使用技巧和注意事项,需要的朋友参考一下 微信小程序分享功能的实现方法有两种: 第一种 在page.js中实现onShareAppMessage,便可在小程序右上角选择分享该页面 第二种 自定义按钮实现分享,在page中添加一个带有open-type='share'的button标签(<but

  • 本文向大家介绍微信小程序分享海报生成的实现方法,包括了微信小程序分享海报生成的实现方法的使用技巧和注意事项,需要的朋友参考一下 为了吸引更多的用户,设计好一个分享海报还是很有必要的。而小程序要生成一个海报还是有点坑的,下面分享下我们打卡小程序的一些经验。 分享海报的效果图如下: 制作要求: 海报以弹窗形式展现,各种手机型号都可以正常显示 海报的内容由背景图、日期、随机的名言警句、活动的二维码及用户

  • 本文向大家介绍微信小程序的分类页面制作,包括了微信小程序的分类页面制作的使用技巧和注意事项,需要的朋友参考一下 微信小程序实的分类页面制作 先上效果图。 这个界面布局难度不是很大,css基础好的,很快就实现了,分类界面,左边是一级目录,右边是一级目录对应的二级目录,根据 这个需求,我们数据设计的结构一定是数组嵌套数组,第一个数组包含一级目录数据,嵌套的数组包含的是二级目录的数据。 代码的实现 js

  • 本文向大家介绍微信小程序页面传多个参数跳转页面的实现方法,包括了微信小程序页面传多个参数跳转页面的实现方法的使用技巧和注意事项,需要的朋友参考一下 这里举例跳转两个参数 传递多少个也可以 这里传参数 我写作 data-item data-id 来绑定 同事加了点击事件bindtap 在index.js 在 data 里我写的是假数据 在跳转页面的函数里传e 后面定义的东西根据e来确定 可以在con

  • 使用同个域名,在微信开发者工具中,调用后端接口报错600009,但是在h5(网页端)正常访问到数据,是什么原因 看到网上说在开发者工具勾选“不校验合法域名”,勾选了还是没用,不知道问题出在哪

  • 微信小程序,下面的逻辑是如果是微信小程序,直接跳转到wxauthmp页面,也就是授权的页面,我打开打开小程序没有问题,但是如果是我分享的小程序的首页,就没办法跳转,一直在页面,而且显示加载的提示 而且我是调试面板发现:如果是正常的打开小程序这里显示navigageTo 如果是打开的分享的小程序首页,显示的是下面的: 有人遇到过这样的问题吗?