provider.uvue 3.0 KB
Newer Older
zhaofengliang920817's avatar
zhaofengliang920817 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
<template>
  <!-- #ifdef APP -->
  <scroll-view class="page-scroll-view">
  <!-- #endif -->
    <view class="page">
      <page-head :title="title"></page-head>
      <view class="service-item" v-for="(item, index) in serviceList" :key="index">
        <text class="service-name">{{item.name}}:</text>
        <view class="provider-list">
          <text class="provider-item" v-for="(item2, index2) in item.provider" :key="index2">
            {{item2}}
            {{item.providerObj.length > 0 ? ':' + JSON.stringify(item.providerObj[index2]) : '' }}
          </text>
        </view>
      </view>
      <button class="btn-get-provider" type="primary" @click="getProvider">getProviderSync</button>
    </view>
  <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
</template>

<script>
  type ProviderItem = {
    service : string,
    name : string,
    provider : string[],
    providerObj : UniProvider[]
  }

  export default {
    data() {
      return {
        title: 'provider',
        flag: false,
        serviceList: [
          { service: "payment", name: "支付", provider: [], providerObj: []},
          { service: "location", name: "定位", provider: [], providerObj: []}
        ] as ProviderItem[],
        providerIds: [] as string[],
        providerObjects: [] as UniProvider[],
      }
    },
    methods: {
      getProvider() {
        this.serviceList.forEach((item : ProviderItem) => {
          var provider = uni.getProviderSync({
            service: item.service,
          } as GetProviderSyncOptions)
          console.log('getProvider',provider,provider.providerIds.length)
          provider.providerIds.forEach((value) => {
             console.log('getProvider','value',value)
            this.providerIds.push(value)
          })
          this.updateProvider(item.service, provider.providerIds, provider.providerObjects);
        })
      },
      updateProvider(service : string, provider : string[] | null, uniProvider : UniProvider[]) {
        const item : ProviderItem | null = this.serviceList.find((item : ProviderItem) : boolean => {
          return item.service == service
        });
        if (item != null && provider != null) {
          item.provider = provider

          item.providerObj = uniProvider
          item.providerObj.forEach((obj) => {
            this.providerObjects.push(obj)
            // #ifdef APP-ANDROID
            if (obj instanceof UniPaymentWxpayProvider) {//判断微信是否安装
              var isWeChatInstalled = (obj as UniPaymentWxpayProvider).isWeChatInstalled
              console.log(isWeChatInstalled)
            }
            // #endif
          })
        }
      }
    }
  }
</script>

<style>
  .page {
    padding: 15px;
  }

  .service-item {
    margin-top: 10px;
  }

  .service-name {
    font-weight: bold;
  }

  .provider-list {
    margin-left: 32px;
  }

  .provider-item {
    line-height: 1.5;
  }

  .btn-get-provider {
    margin-top: 30px;
  }
105
</style>