日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

H5浙里办对接流程和问题记录

發(fā)布時(shí)間:2023/12/1 综合教程 55 生活家
生活随笔 收集整理的這篇文章主要介紹了 H5浙里办对接流程和问题记录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用框架介紹:vue3 + vite + vant

前端對接流程總結(jié)

    • 1、環(huán)境準(zhǔn)備
      • 1.1 引入JSBridge
      • 1.2 更改打包目錄
    • 2、單點(diǎn)登錄
    • 3、適老化(浙里辦上架h5硬性要求)
    • 4、MGOP接口對接
      • 4.1 MGOP接口配置
      • 4.2 使用注冊的MGOP接口
    • 5、埋點(diǎn)
    • 6、JSBridgeAPI功能記錄
      • 6.1 打電話功能
      • 6.2 文件上傳

1、環(huán)境準(zhǔn)備

1.1 引入JSBridge

在浙里辦的微應(yīng)用中,很多地方需要使用到浙里辦的一些封裝API功能,也就是JSBridge,且所有JSBridgeAPI均支持Promise回調(diào)

<!--在項(xiàng)目啟動(dòng)頁index.html <head></head>里面引入-->
<script type="text/javascript" src="//assets.zjzwfw.gov.cn/assets/ZWJSBridge/1.0.1/zwjsbridge.js"></script>

在App.vue中進(jìn)行全局初始化 。如果不進(jìn)行此步驟,會出現(xiàn)調(diào)用失敗的情況!

const init = ()=>{ZWJSBridge.onReady(() => {console.log('初始化完成后,執(zhí)行bridge方法')})
}
init()

到此就可以使用浙里辦的一些api了,這些api只有浙里辦環(huán)境才能使用

1.2 更改打包目錄

由于浙里辦編譯默認(rèn)輸出位置是build,所以在vite.config.js里修改默認(rèn)的輸出位置

export default defineConfig({base: './', ...build: {outDir: './build', //修改輸出位置為build},...
})

2、單點(diǎn)登錄

單點(diǎn)登錄分為個(gè)人單點(diǎn)登錄法人單點(diǎn)登錄,項(xiàng)目要求目前只做了法人的

// 截取url數(shù)據(jù)
const getQuery = (val)=>{var query = window.location.search.substring(1);var vars = query.split("&");for (var i=0;i<vars.length;i++) {var pair = vars[i].split("=");if(pair[0] == val){return pair[1];}}return(false);
}
// 法人單點(diǎn)登陸-獲取用戶信息
const getTicket = ()=>{let userId = getQuery('operationId')let userName = getQuery('operationName')console.log(userId,'用戶id')console.log(userName,'用戶名稱')if(userId && userName){const data = {userId:userId,userName:userName}useUserInfo.updateName(data) //更新數(shù)據(jù)}else{window.location.href = 'https://esso.zjzwfw.gov.cn/opensso/spsaehandler/metaAlias/sp?spappurl=接口地址'}
}

3、適老化(浙里辦上架h5硬性要求)

// 獲取是適老化還是正常模式
const getModel =()=>{ZWJSBridge.getUiStyle().then((result) => {if(result.uiStyle === 'elder'){ import('./assets/older.css') //老年版css}else{import('./assets/normal.css') //正常css}}).catch((error) => {console.log(error,'模式error');});
}

4、MGOP接口對接

4.1 MGOP接口配置

  1. 找到API管理
  2. 點(diǎn)擊新建API
  3. 配置API名稱 (API名稱固定用mgop.${app_id}.app.${api_name}

4.2 使用注冊的MGOP接口

  1. 安裝網(wǎng)管依賴

    npm i --save @aligov/jssdk-mgop@3.0.0
    
  2. 封裝請求(有post或者get兩種請求方式)

    /*./src/utils/mgop.js*/
    import { mgop } from '@aligov/jssdk-mgop'
    const mgopRequest = (payload) => {	return new Promise((resolve, reject) => {// showLoading()// 仿照axios的傳參方式const data = Object.assign({}, {api: payload.zwApi, // 必須,政務(wù)中臺rpc接口的制定名字。例如‘mgop.xxx.app.login’host: 'https://mapi.zjzwfw.gov.cn/',// 固定為這個(gè)地址dataType: 'JSON', // 目前官方只支持JSON格式data: payload.data, // 不管入?yún)⑹莙uery還是body都同意用data傳入,到時(shí)候在工作臺里配置即可type: 'POST', // 和axios一樣// isBuffer: payload.isBuffer, appKey: '××××××××××', // 必須,政務(wù)中臺appKey, 系統(tǒng)申請之后大數(shù)據(jù)局發(fā)過來的excel里有// 成功后的回調(diào)onSuccess: data => {console.log(data.data)resolve(data)},// 請求失敗后的回調(diào)onFail: err => {console.log(err, 'err')reject(err.message)}},)mgop(data)})
    }
    export default {mgopRequest
    }
    
  3. 使用

    import utils from "@/helper/mgop.js"
    const data = {zwApi:'×××', //接口名稱data:{ //參數(shù)companyName:searchVal.value}
    }
    utils.mgopRequest(data).then(res=>{console.log(res,res.data.code)if(res.data.code === '10000'){console.log('成功')}
    })
    

注:本地調(diào)試會出現(xiàn)跨域的情況,需要在政務(wù)中臺配置白名單

5、埋點(diǎn)

<script> // 浙里辦基礎(chǔ)信息埋點(diǎn)(function(w, d, s, q, i) {w[q] = w[q] || [];var f = d.getElementsByTagName(s)[0],j = d.createElement(s);j.async = true;j.id = 'beacon-aplus';j.src = 'https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085';f.parentNode.insertBefore(j, f);})(window, document, 'script', 'aplus_queue');aplus_queue.push({action: 'aplus.setMetaInfo',arguments: ['aplus-rhost-v', 'alog.zjzwfw.gov.cn']});aplus_queue.push({action: 'aplus.setMetaInfo',arguments: ['aplus-rhost-g', 'alog.zjzwfw.gov.cn']});aplus_queue.push({action: 'aplus.setMetaInfo',arguments: ['appId', '60506758']});aplus_queue.push({action: 'aplus.setMetaInfo',arguments: ['aplus-waiting', 'MAN']});aplus_queue.push({'action':'aplus.sendPV','arguments':[{is_auto: false}, {// 自定義 PV 參數(shù) key-value 鍵值對(只能是這種平鋪的 json,不能做多層嵌套),如:miniAppId:'appKey', }]})</script>

6、JSBridgeAPI功能記錄

JSBridgeAPI功能 可以在浙里辦對接文檔或者調(diào)試工具政務(wù)中臺ZWEurope里查看方法

6.1 打電話功能

<span class="tel" @click="callTel">×××-×××-××××</span>const callTel = ()=>{ZWJSBridge.phoneCall({"corpId": "×××-×××-××××"}).then(res => {console.log('成功',res)}).catch(err => {console.log('失敗',err) })
}

6.2 文件上傳

因?yàn)橐婚_始使用的是vant的文件上傳,上架到浙里辦之后發(fā)現(xiàn)文件上傳功能點(diǎn)不動(dòng),就換了種方式

 <van-field name="imgs" label="附件(最多可上傳6張)"><template #input><div class="imgList"><div class="imgs" v-if="form.attachments && form.attachments.length > 0" v-for="(item,i) in form.attachments" :key="i"><img class="img" :src="item" alt=""><img class="delBtn" @click="delImg(i)" src="@/assets/upload-remove.png" alt=""></div><button v-if="form.attachments && form.attachments.length < 6" type="button" class="uploadBtn" @click="select"><img src="@/assets/upload_img.png" alt=""></button></div></template></van-field>const select = ()=>{ZWJSBridge.chooseImage({"upload": true}).then(res => {console.log(res,'---------res1')form.attachments.push(res.picPath[0])btnLoading.value = false}).catch(err => {btnLoading.value = falseconsole.log(err,'--------err1') })
}
const delImg = (index)=>{console.log(index)form.attachments.splice(index,1)
}

總結(jié)

以上是生活随笔為你收集整理的H5浙里办对接流程和问题记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。