收藏
回答

小程序里通过按钮方式打开智能对话,对话中点击小程序消息,无法触发bindcontact?

小程序的代码如下:

    <view class="grid">
      <view>服务</view>
      <view class="btn-wrap">
          <button class="btn-contact" open-type="contact" @bindcontact="handleContact" session-from="sessionFrom" :show-message-card="true">
          <text class="iconfont icon-kefu icon-size" style="color: #9999ff"></text>
          <view class="txt">联系客服</view>
        </button>
        <button class="btn-contact" open-type="share">
          <text class="iconfont icon-yaoqinghaoyou1 icon-size" style="color: #79d279"></text>
          <view class="txt">分享好友</view>
        </button>
      </view>
    </view>
    <!-- #endif -->
  </view>

export default {
  data() {
    return {
      userInfo: {},
      hasLogin: false
    };
  },
  onLoad() {
    console.log("onLoad11111")
    //#ifdef MP-WEIXIN
    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage', 'shareTimeline']
    });
    //#endif
  },
  onShow() {
    if (uni.getStorageSync('hasLogin')) {
      this.getUserInfo();
      this.hasLogin = true;
    }
  },
  onShareAppMessage(res) {
    if (res.from === 'button') {
      // 来自页面内分享按钮
      console.log(res.target);
    }
    let imgURL = '/static/images/KXF-Logo.png';
    return {
      title: this.$c.miniappName,
      path: '/pages/index/index',
      imageUrl: imgURL
    };
  },
  methods: {
    toLogin() {
      uni.navigateTo({
        url: '/pages/login/login'
      });
    },
    getUserInfo() {
      this.$H.get('/wechat/getWeInfo').then(res => {
        this.userInfo = res.data;
      });
    },
    toNav(url) {
      // uni.navigateTo({
      // 	url: url
      // })
    },
    handleContact(e) {
        console.log("111111111111")
        this.$log.info('打一些日志测试一下111111111111')
        console.log(e)
        console.log(e.detail.path)
        console.log(e.detail.query)
        const url = 'e.detail.path' + e.detail.query;
        wx.navigateTo({ url });
    }
  },
};





测试过程中相应页面以及真机模式下显示的日志:

1,点击“联系客服”按钮

2,进入对话页面,触发产生了小程序链接。并点击小程序消息“小程序默认页”


消息包

调试页面内的JSON结果:

{
"ans_node_id"43743334,
"ans_node_name""给出小程序链接",
"answer""{"miniprogrampage":{"title":"小程序默认页","appid":"wx46df5bfe8ca55cb9","pagepath":"pages/index/index","thumb_url":"https://chatbotassets-75050.gzc.vod.tencent-cloud.com/openaiassets_756cdca387ed915f54d3f4fcb51432b7.png"}}",
"answer_open"1,
"answer_type""text",
"article""",
"bid_stat"null,
"confidence"1,
"create_time""1698806537",
"dialog_status""END",
"dialog_session_status""END",
"event""",
"from_user_name""o9U-85u7nwsZ6-eLvrm8Xk-kzUHU",
"intent_confirm_status""",
"is_default_answer"false,
"list_options"false,
"options"null,
"msg": [
{
"ans_node_id"43743334,
"ans_node_name""给出小程序链接",
"article""",
"confidence"1,
"content""{"miniprogrampage":{"title":"小程序默认页","appid":"wx46df5bfe8ca55cb9","pagepath":"pages/index/index","thumb_url":"https://chatbotassets-75050.gzc.vod.tencent-cloud.com/openaiassets_756cdca387ed915f54d3f4fcb51432b7.png"}}",
"debug_info""",
"event""",
"list_options"false,
"msg_type""text",
"opening""",
"options"null,
"request_id"1698806537,
"scene_status""",
"session_id""0_773472|o9U-85u7nwsZ6-eLvrm8Xk-kzUHU",
"status""GENERAL_FAQ",
"take_options_only"false,
"resp_title""给出小程序链接"
}
],
"msg_id""83f7a2f6",
"opening""",
"request_id"1698806537,
"ret"0,
"scene_status""",
"session_id""0_773472|o9U-85u7nwsZ6-eLvrm8Xk-kzUHU",
"skill_id""1288490190846398",
"skill_name""给出小程序链接",
"slot_info"null,
"slots_info"null,
"status""GENERAL_FAQ",
"take_options_only"false,
"title""给出小程序链接",
"to_user_name""773472",
"msgtype""miniprogrampage",
"from_xwbrain"true,
"question"""
}



最后一次编辑于  2023-11-03
回答关注问题邀请回答
收藏

3 个回答

  • 乌有居士
    乌有居士
    2023-11-05

    问:在使用开发工具时发现模拟器上显示设备在线状态,而用手机扫描二维码预览时显示设备为离线状态?使用真机调试又是在线

    2023-11-05
    有用
    回复
  • sky
    sky
    2023-11-03

    问题已解决,在uniapp中要用@contact="handleContact"

    2023-11-03
    有用
    回复 1
    • 楠栅
      楠栅
      06-13
      怎么找倒的啊
      06-13
      回复
  • fengsong
    fengsong
    2023-11-01

    您好,请问您是想小程序卡片跳转吗?

    2023-11-01
    有用
    回复 5
    • sky
      sky
      2023-11-01
      对,需要通过对话里的小程序卡片跳转到指定页面。
      2023-11-01
      回复
    • fengsong
      fengsong
      2023-11-01回复sky
      您好,您可以参考https://developers.weixin.qq.com/doc/aispeech/mini_program/uiapi.html进行配置
      2023-11-01
      回复
    • sky
      sky
      2023-11-01回复fengsong
      您好,估计这个不行,这个是小程序插件方式。我现在采用的是客服消息按钮组件(https://developers.weixin.qq.com/miniprogram/introduction/custom.html#%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D)。当前已经能打开客服会话页面,只是在对话过程中,点击对话中的小程序卡片,无法跳转到正确页面,都是回到触发“客服消息按钮组件”的页面。
      我看链接里有以下介绍,但是不成功。
      2023-11-01
      回复
    • fengsong
      fengsong
      2023-11-01回复sky
      您好,“微信对话开放平台”是专为“对话机器人”开发者打造的高效开发平台。非常抱歉,我们无法回答您提出的问题,因为其超出了我们的业务范围。如果您在使用该平台时遇到任何问题,欢迎在此处反馈,我们将竭诚为您提供支持。
      2023-11-01
      回复
    • sky
      sky
      2023-11-01回复fengsong
      你们是否考虑这是一个bug呢?毕竟你们官方文档里都有介绍是通过bindcontact来跳转。当前从日志来看,并没有触发到bindcontact。
      2023-11-01
      回复
登录 后发表内容