需求:点击电话号码,弹出对话框,确定后直接调用手机拨打电话功能(ps:不允许弹出是否允许调用手机通讯录的提示)。

验证后仅思路3满足需求。

 思路1:---简单但不满足(不允许弹出是否允许调用手机通讯录的提示)需求

 window.location.href = 'tel:' + 8888410;

 思路2:-------方法存在问题

 <a id="call" @click="showDialog" style="color: #336699">8888410</a>

<van-dialog
      v-model="show"
      title="服务热线"
      :message="`确认拨打8888410服务热线吗?`"
      show-cancel-button
      @cancel="cancel"
      @confirm="contact"
    >
</van-dialog>


  showDialog() {
      this.show = true;// 显示确认对话框
  },
   contact() {
      // 获取a标签
      const a = document.getElementById("call");
      // 给a标签的href属性赋值
      a.setAttribute("href", `tel:8888410`);
      a.click();
      this.show = false;
    },

结论:可以实现点击确认后直接拨打电话,但是拨打完电话返回页面再次拨打,弹出对话框一闪而过直接跳转到拨打电话界面。

 思路3:点击对话框确定按钮时再创建a标签拨打电话;

<span id="call" @click="showDialog" style="color: #336699">8888410</span>

<van-dialog
      v-model="show"
      title="服务热线"
      :message="`确认拨打8888410服务热线吗?`"
      show-cancel-button
      @cancel="cancel"
      @confirm="contact"
    >
</van-dialog>


  showDialog() {
      this.show = true;// 显示确认对话框
  },
   contact() {
      const a = document.createElement("a");
      a.href = "tel:8888410"
      a.click();
      this.show = false;
    },

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐