一、常见问题
序号 | 问题描述 | 地址 |
---|---|---|
1.1 | 免登的流程 | 点击查看 |
1.2 | 如何设置navbar的title | 点击查看 |
1.3 | 如何绑定navbar的回退事件 | 点击查看 |
1.4 | 如何自定义navbar的右上角的功能区域 | 点击查看 |
1.5 | 附件上传下载 | 点击查看 |
1.1 如何通过jsbridge实现app免登并获取当前登录的用户
1.1.1 免登的流程
通过免登服务,在微应用的H5中,无需用户再次输入用户名和密码,可以通过身份认证获取当前使用政企通的用户身份及相关信息。
通过CODE获取用户身份会有一定的时间开销。对于频繁获取用户身份的场景,建议采用如下方案:
1.用户跳转微应用页面时,微应用校验是否有代表用户身份的cookie,此cookie由企业生成。
2.如果没有获取到cookie,调用免登服务,获取用户身份后,由企业生成代表用户身份的cookie。
3.根据cookie获取用户身份,进入相应的页面。
1.1.2 具体的操作步骤
1.1.2.1 企业端
- Step1. 在客户端微应用里面,通过jsbridge获取code;
- Step2. 在客户端服务端,根据分配的clientID和clientSecret获取政府端或企业端token;
- Step3. 在客户端服务端,根据code和clientId和token来获取当前登录的用户userid;
- Step4. 在客户端微应用里面,通过jsbridge获取baseid;
- Step5. 根据userid和baseid和token获取当前登录用户的身份信息;
1.1.2.2 政府端
- Step1. 在微客户端微应用里面,通过jsbridge获取code;
- Step2. 在客户端服务端,根据分配的clientID和clientSecret获取政府端或企业端token;
- Step3. 在客户端服务端,根据code和clientId和token来获取当前登录的用户userid;
- Step4. 根据userid和token获取当前登录用户的身份信息;
1.2 如何设置navbar的title
let zqtbridge = require("zqtbridge")
//修改标题
componentDidMount() {
zqtbridge.call("device.navigation.setTitle", {"title": "首页"}, function (v) {});
}
1.3 如何绑定navbar的回退事件
let zqtbridge = require("zqtbridge")
//解除绑定
componentDidMount() {
//去除绑定事件
zqtbridge.call("device.navigation.unbindBackBtn", function (v) {
});
}
//绑定后退方法
componentDidMount() {
zqtbridge.register('bindBackBtn', this.goback)
zqtbridge.call("device.navigation.bindBackBtn", {"callback":"bindBackBtn"}, function (v) { });
}
1.4 如何自定义navbar的右上角的功能区域
let zqtbridge = require("zqtbridge")
share = () => {
zqtbridge.call("service.share.share", {
"title": this.props.article.data.title,
"detail": this.props.article.data.title,
"url": "http://web-h5.app.zqtong.com/article/" + this.props.article.data.id
}, function (v) {
});
}
//绑定分享的方法
zqtbridge.register('callbackShare', this.share)
//设置右上角的分销
zqtbridge.call("device.navigation.setMenu", {
"menus": [
{"icon": "https://58.215.198.210:9997/test/icon.png", "title": "分享", "callback": "callbackShare"},
]
}, function (v) {
});
1.5 附件上传和下载
Android上传和下载
Step1 获取本地文件的路径
let localUrl = '';
let url = '';
<Button onClick={() => {
zqtbridge.call("service.media.openLib", {"type": 0, "maxNum": 5}, function (v) {
//字符串
let pathStr = JSON.parse(v).list;
let pathArr = JSON.parse(pathStr);
localUrl = pathArr[0];
//获取最后一个/的位置
let site = localUrl.lastIndexOf("\/");
//截取最后一个/后的值
url = localUrl.substring(site + 1,localUrl.length);
alert(url)
});
}}>service.media.openLib</Button>
Step2 上传文件到efs文件系统
<Button onClick={() => {
alert(url)
zqtbridge.call("service.file.upload", {
"fileUrl": localUrl,
"destUrl": "https://gateway.eazytec-cloud.com/EFS_investsmart/card/" + url,
"isLib": false,
"mineType": "image/jpeg",
"api-key": "0cf8d5ab024e42b1ad53f73a5bbc4a64"
}, function (v) {
alert(v)
});
Step3 下载文件检验是否上传成功
<Button onClick={() => {
zqtbridge.call("service.file.download", {
"url": "https://gateway.eazytec-cloud.com/EFS_investsmart/card/" + url,
"api-key": "0cf8d5ab024e42b1ad53f73a5bbc4a64",
"autoOpen": true
}, function (v) {
});
}}>service.file.download</Button>