帖子
帖子
用户
博客
课程
显示全部楼层
88
帖子
0
勋章
710
Y币

[开发工具] api.confirm 异常报错

[复制链接]
发表于 2022-4-28 14:55:11
api.confirm放在apiready里才不会报错的问题,这个怎么解决**.**form逻辑上是不能放在apiready里的,但即使你之前调用了apiready  ,你不**.**firm写在apiready里面他就报错。
报错代码:<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport"
    content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
  <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
  <link rel="stylesheet" type="text/css" href="../css/api.css" />
  <link rel="stylesheet" type="text/css" href="../css/style.css" />
  <link rel="stylesheet" type="text/css" href="../css/map.css" />
  <link href="http://cdn**.**/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <title>共享单车</title>
  <!doctype html>
  <style type="text/css">
    #footer ul li:nth-child(1) {
      background-image: url(../image/localion.png);
    }

    #footer ul li:nth-child(2) {
      background-image: url(../image/scanner.png);
    }

    #footer ul li:nth-child(3) {
      background-image: url(../image/loadmap.png);
    }

    .flex-con {
      overflow: auto;
    }
  </style>
</head>
</head>

<body>
  <div id="main" class="flex-con">
    <div class="search bar1" style="margin-top: -255px;">
      <form>
        <input type="text" placeholder="搜索共享单车" list="s-bike" id="sbike" value="">
        <button type="submit"></button>
      </form>
      <div>
        <datalist id="s-bike">
          <option>ofo小黄车</option>
          <option>摩拜单车</option>
        </datalist>
      </div>

    </div>

    <div id="footer" class="border-t">
      <ul class="flex-wrap" style="margin-top: 540px;" index="999">
        <li tapmode="hover" onclick="navigation();" class="flex-con">定位导航</li>
        <li tapmode="hover" onclick="openbike();" id="scanner" class="flex-con">扫码开车</li>
        <li tapmode="hover" onclick="loadmap();" class="flex-con">离线地图</li>
      </ul>
    </div>


  </div>
  <script type="text/javascript" src="../script/api.js"></script>
  <script type="text/javascript" src="../script/common.js"></script>
  <script type="text/javascript" src="../script/map.js"></script>
  <script type="text/javascript" src="../script/jquery-1.8.3.min.js"></script>
  <script type="text/javascript" src="../script/jquery.cookie.js"></script>
  <script>
    apiready = function () {
          var aMap = api.require('aMap');
          aMap.updateMapViewPrivacy({
            privacyAgree: 'didAgree',
            privacyShow: 'didShow',
            containStatus: 'didContain'
          });


          var aMap = api.require('aMap');
          aMap.updateSearchPrivacy({
            privacyAgree: 'didAgree',
            privacyShow: 'didShow',
            containStatus: 'didContain'

          });

          var aMap = api.require('aMap');
          aMap.getLocation(function (ret, err) {
            if (ret.status) {
              var lon = JSON.stringify(ret.lon);
              var lat = JSON.stringify(ret.lat);
              var aMap = api.require('aMap');
              aMap.open({
                rect: {
                  x: 0,
                  y: 50,
                  w: 720,
                  h: 490
                },
                showUserLocation: true,
                zoomLevel: 11,
                center: {
                  lon: lon,
                  lat: lat
                },
                fixedOn: api.frameName,
                fixed: false
              }, function (ret, err) {
                if (ret.status) {

                } else {
                  alert(JSON.stringify(err));
                }
              });
            } else {
              alert(JSON.stringify(err));
            }
          });
  // var aMap = api.require('aMap');
  //         aMap.show();

  var aMap = api.require('aMap');
          aMap.setMapAttr({
            type: 'standard',
            trafficOn: true,
            zoomEnable: true,
            scrollEnable: true,
            building: true,
            overlookEnabled: true,
            rotateEnabled: true
          });

          var aMap = api.require('aMap');
          aMap.setMapLanguage({
            language: 'zh_cn'
          });
        }


    function payalert() {
    api.confirm({
        msg: "已扫码成功,是否立即支付?",
        buttons: ["立即支付", "先开锁,稍后支付"]
      }, function (ret,) {
        var index = ret.buttonIndex;
        if (index == 1) {
          document.getElementById('scanner').style.backgroundImage = 'url(../image/scanner.png)';
          api.actionSheet({
            title: '支付方式',
            cancelTitle: '取消支付',
            buttons: ['微信支付', '支付宝支付', '银联支付', '百度钱包支付']
          }, function (ret, err) {
            var a = ret.buttonIndex;
            if (a == 5) {
              alert("您取消了支付");
              document.getElementById('scanner').style.backgroundImage = 'url(../image/scanner.png)';
              var content = document.getElementById('footer').getElementsByTagName('li');
              for (var i = 0; i < content.length; i++) {
                if (i == 1) {
                  content[i].innerHTML = "扫码开车";
                }
              }
            }
            else if (a == 1) {
              api.openFrame({
                name: 'wxpay',
                url: './wxpay.html'
              })
            } else if (a == 2) {
              api.openFrame({
                name: 'alipay',
                url: './alipay.html'
              })
            } else if (a == 3) {
              api.openFrame({
                name: 'upacp',
                url: './upacp.html'
              })
            } else if (a == 4) {
              api.openFrame({
                name: 'bdpay',
                url: './bdpay.html'
              })
            }
          });

        } else {
          api.closeFrame();
          document.getElementById('scanner').style.backgroundImage = 'url(../image/unblock.png)';
          var content = document.getElementById('footer').getElementsByTagName('li');
          for (var i = 0; i < content.length; i++) {
            if (i == 1) {
              content[i].innerHTML = "已解锁";
            }
          }

        }

      })
    }
    var status = $.cookie("status");
    $.removeCookie('status');
    if (status) {
      payalert();
    }

    var pay = $.cookie("pay");
    if (pay) {
      document.getElementById('scanner').style.backgroundImage = 'url(../image/unblock.png)';
      var content = document.getElementById('footer').getElementsByTagName('li');
      for (var i = 0; i < content.length; i++) {
        if (i == 1) {
          content[i].innerHTML = "已解锁";
        }
      }

    } else {
      document.getElementById('scanner').style.backgroundImage = 'url(../image/scanner.png)';
      var content = document.getElementById('footer').getElementsByTagName('li');
      for (var i = 0; i < content.length; i++) {
        if (i == 1) {
          content[i].innerHTML = "扫码开车";
        }
      }
    }

    function navigation() {
      api.openWin({
        name: 'navigation',
        url: 'navigation.html',
        opaque: true,
        vScrollBarEnabled: false
      });
    }
    function loadmap() {
      api.openWin({
        name: 'loadmap',
        url: 'loadmap.html',
        opaque: true,
        vScrollBarEnabled: false
      });
    }
    function openbike() {
      api.openFrame({
        name: 'openbike',
        url: './openbike.html',
        rect: {
          x: 0,
          y: 0,
          w: api.winWidth,
          h: api.winHeight

        },
      });
      showalert();
    }
    function showalert() {

      setTimeout(function () {
        var status = $.cookie("status");
        if (status) {
          payalert();
        }

      }, 10000);
    }


    function back() {
      api.historyBack({
      }, function (ret, err) {
        if (!ret.status) {
          api.closeWin();
        }
      });

    }

  </script>
</body>

</html>

380
帖子
4
勋章
6
Y币
可以把 showalert(); 放到新打开页面的apiready 里执行
您需要登录后才可以回帖 登录

本版积分规则