JSAPI

  • Since 8.1

    getCities

    getCities用来呼出城市选择列表

    使用方法

    AlipayJSBridge.call('getCities', function (result) {
      console.log(result);
    });
    

    代码演示

    基本使用演示

    <h1>点击打开选择城市</h1>
    <a href="#" class="btn J_demo">打开城市列表</a>
    <script>
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function(){
      document.querySelector('a').addEventListener('click', function() {
        AlipayJSBridge.call('getCities', function(result) {
          alert(JSON.stringify(result));
        });
      });
    });
    </script>
    

    城市选择并开启定位功能

    <h1>点击打开选择城市</h1>
    <a href="#" class="btn J_demo">打开城市列表</a>
    <script>
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function(){
      document.querySelector('a').addEventListener('click', function() {
        // 需要同时传入城市名称和adcode才能开启定位功能
        AlipayJSBridge.call('getCities', {
          currentCity: '杭州市', // 当前选择的城市,一般传入上次选择的就可以
          adcode: '310100'
        }, function(result) {
          alert(JSON.stringify(result));
        });
      });
    });
    </script>
    

    自定义城市列表,并且不显示热门城市

    <h1>点击打开选择城市</h1>
    <a href="#" class="btn J_demo">打开城市列表</a>
    <script>
     function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function(){
      document.querySelector('a').addEventListener('click', function() {
        AlipayJSBridge.call('getCities', {
          needHotCity: false,
          customCities: [
            {name: "杭州", adcode: "xxxx", pinyin: "hangzhou"},
            {name: "上海", adcode: "yyyy", pinyin: "shanghai"}
          ]
        }, function(result) {
          alert(JSON.stringify(result));
        });
      });
    });
    </script>
    

    API

    AlipayJSBridge.call('getCities', {
      currentCity,
      adcode,
      needHotCity,
      customCities
    }, fn)
    

    入参

    名称类型描述必选默认值版本
    currentCitystring传入当前使用中的城市名N8.2
    adcodestring传入当前使用中的城市的adcode(如果没有用到adcode,可以传入空字符串)N8.2
    customCitiesarray自定义城市列表(格式:{name:”杭州”,adcode:”xxxx”,pinyin:”hangzhou”})N8.4
    customHotCitiesarray自定义热门城市列表N8.4
    needHotCitybool是否需要现实热门城市Ntrue8.4
    fnfunction当选择了城市之后的回调

    出参

    回调函数带入的参数result: {city, adcode}

    使用注意

    • getCities如果要开启定位,那么需要同时传入currentCityadcode