xianyu.js 1.75 KB
/**
 * Xianyu-SDK
 *
 * 与原生 APP 交互的代码
 *
 */

const xianyu = {
  /**
   * 判断是否是 APP
   */
  isAliApp: /AliApp/i.test(navigator.userAgent || ''),
  isiOS: /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(navigator.userAgent || ''),
  isAndroid: /Android/i.test(navigator.userAgent || ''),

  setXianyuWebview() {
    if (this.isAliApp && window.WindVane) {
      window.WindVane.call('WVIdleFishApi', 'setNavigationBarVisible', { visible: false }, () => {
        console.log('set ok');
      }, () => {
      });
    }
  },

  finishXianyuPage() {
    if (this.isAliApp && window.WindVane) {
      window.WindVane.call('WVIdleFishApi', 'finish', {}, () => {
        console.log('set ok');
      }, () => {
      });
    }
  },

  backXianyuPage() {
    if (this.isAliApp && window.WindVane) {
      window.WindVane.call('WVIdleFishApi', 'nativeBack', {}, () => {
        console.log('set ok');
      }, () => {
      });
    }
  },

  setXianyuTitle(args) {
    if (this.isAliApp && window.WindVane) {
      window.WindVane.call('WVIdleFishApi', 'setTitle', args, () => {
        console.log('set ok');
      }, () => {
      });
    }
  },

  setXianyuNav() {
    if (this.isAliApp && window.WindVane) {
      window.WindVane.call('WVIdleFishApi', 'setHideNavigatorRightItem', {}, () => {
        console.log('set ok');
      }, () => {
      });
    }
  },

  goXianyuNewPage(args) {
    if (!args.url) {
      return;
    }

    if (this.isAliApp && window.WindVane) {
      window.WindVane.call('Base', 'openWindow', args, () => {
        console.log('open new window success');
      }, () => {
        window.open(args.url, '_blank');
      });
    } else {
      if (args.url) {
        window.open(args.url, '_blank');
      }
    }
  },
};

export default xianyu;