Appearance
H5 SDK 2.x
导入 SDK
七牛云 CDN
html
<script src="https://img.pikapika.ink/js/2.1.0/infzm_h5_sdk.min.js"></script>腾讯云 CDN
html
<script src="http://images.infzm.com/js/lib/h5/2.1.0/infzm_h5_sdk.min.js"></script>获取客户端详情
判断是否为 APP 环境、平台、版本号
javascript
_appTool.isApp(function (res) {
if(!res) return; //不是客户端环境
if(res && res.platform === 'android') {} //安卓环境
if(res && res.isAndroidClient) {} //安卓环境
if(res && res.platform === 'ios') {} //苹果环境
if(res && res.isiOSClient) {} //苹果环境
if(res && res.version ) {} //客户端版本号
})当为客户的环境时, res 参数为对象,如果不是则返回 null
下面是 iOS 客户端返回的参数
json
{
"isAndroidClient": false,
"isApp" : true,
"isiOSClient" : true,
"platform" : "ios",
"version" : "6.2.0"
}App 版本号判断
WARNING
返回的版本号只是字符串,使用判断函数可以判读版本号
比如需要调用 6.3.2 才有的功能:
javascript
_appTool.isApp(function (res) {
if(!res) return //不是客户端
if(_appTool.versionCompare(res.version, '6.3.2') > -1){
//调用 **6.3.2** 才有的功能
}
})调起原生页面
功能测试页面 http://h5.misaka.im/webview-open-page-test.php
参考 南方周末通用协议 可以取得调起原生页面的相关参数
如需要调起 订阅会员页 页:
javascript
var type_obj = {
'version': '1.6.0',
'link_type': '7',
}
var uri = _appTool.createOpenURI(type_obj)
_appTool.openPage(type_obj.link_type, uri)登录页面
调出登录页面首先要在页面上判断用户是否登录,见获取用户信息相关说明
javascript
_appTool.isLogin() //Return Boolean分享信息设置
javascript
//参数 分享标题 分享描述 小图标地址 分享地址
var share_info = {
share_title: '分享标题',
share_desc: '分享描述',
share_icon: 'http://images.infzm.com/medias/2018/0816/136580.jpeg@770x510',
share_url: 'http://www.infzm.com/content/136473',
}
_appTool.setShare(share_info);分享回调函数
WARNING
这个功能需要 iOS v6.2.5 以上版本才支持
window.JSafterShare
不支持对多个分享设置对应的回调,所以在用户分享前就要先设置好回调。
javascript
window.JSafterShare = function(state, url) {
if (state == "success") {
alert('用户点击了分享按钮')
}
}获取客户端用户信息
从 APP
==H5 活动地址请不要使用 https ,否则会因为跨域问题无法调取接口==
javascript
_appInit(function(userinfo, l) {
//userinfo 结构如下
//night_mode: false
//token : 39b7f632e526b7bbdb06bdf8abeb310a
//version : 5.3.0
//hash : 2bc8e19f6df74c4bc8fc76c4402ac271
//user:
//format : json
//platform : android
//userid : 2276555
})从服务器
javascript
_appInit(function (userinfo, l) {
// userinfo 用于 getUserRemote
_appTool.getUserRemote(userinfo, function (data) {
// data 数据结构
// avater: "http://images.infzm.com/users/2277/u2276555.jpg"
// expire_time: "2020-03-01 00:00:00"
// headimgurl: "http://images.infzm.com/users/2277/u2276555.jpg"
// id: 2276555
// isBind: true
// isVip: false
// member_type: 3
// nackname: "Mather"
// phone: "15015030288"
// username: "Mather"
});
})同步调用的场景
如果你的编程环境受限,不支持异步调用,在代码中定义下面两个函数:
判断是否登录
在代码中定义下面函数:
javascript
function isLoginInApp(){
// return true/false
return typeof JSBinder != 'undefined' && !isNaN(Number(JSBinder.getUserId()))
}返回值
| 返回值 | 类型 | 备注 |
|---|---|---|
| true | Boolean | 在 APP 环境中 |
| false | Boolean | 非 APP 环境 |
示例
javascript
if(isLoginInApp()) console.log('已登录')获取用户信息
在代码中定义下面函数:
javascript
function isLoginInApp(){
// return true/false
return typeof JSBinder != 'undefined' && !isNaN(Number(JSBinder.getUserId()))
}
function getUserIdAndTokenInApp() {
// return {userid: 123, token: 123456}
// or false
return isLoginInApp() ? { userid: JSBinder.getUserId(), token: JSBinder.getUserId() } : false
}返回值
| 返回值 | 类型 | 备注 |
|---|---|---|
| JSON Object | Object | 见用户信息对象 |
| false | Boolean | 未登录 |
用户信息对象
json
{
"userid": 1234,
"token" : "12345"
}示例
javascript
if(getUserIdAndTokenInApp()) console.log('用户id' + getUserIdAndTokenInApp().id)