# 快速接入

# 通过CDN脚本方式接入

这种方式接入简单快速,适合无需WebPack打包的前端项目。只需在要使用SDK的页面引入一个脚本即可。由于该脚本很小,并不包含客户端桥接方法具体实现,所以加载速度很快。待第一次调用任意一个桥接方法时(环境相关方法除外),该脚本会自动根据当前环境,异步加载兼容该客户端的桥接模块代码。

<script src="https://m.elongstatic.com/flexbridge/sdk/3.0.1/flexbridge.js"></script>
<script>
    //脚本引入后,会自动全局注入FlexBridge对象。直接调用相应的方法即可,如:
    FlexBridge.getSDKInfo().then(function(info) {
        alert(info.version)
    })
</script>

提示

上面示例,引用脚本路径中的3.0.1可以替换为指定的版本。查看所有可用版本,请参见版本更新历史

# 通过安装npm包方式接入

这种方式是主流前端项目前所采用的模块开发和使用的方式。通过npm安装flexbridge包,在项目中按需import并使用。适合项目已经使用WebPack、Gulp等构建工具进行打包的项目。具有更好的包依赖管理,更强的语法提示。同样支持按需异步最小化加载。

安装flexbridge最新包

npm config set @hybrid:registry http://nexus.17usoft.com/repository/npm-hybrid/
npm i @hybrid/flexbridge

当然,你也可以指定安装版本。查看所有版本

npm config set @hybrid:registry http://nexus.17usoft.com/repository/npm-hybrid/
npm i @hybrid/flexbridge@2.2.0

然后在代码中使用

import FlexBridge from "@hybrid/flexbridge"

//获取SDK版本号
FlexBridge.getSDKInfo().then(info => {
    console.log(info)
})

//通过Promise方式获取定位信息
FlexBridge.getLocation().then(data => {
    //data是获取定位成功的结果数据
    console.log(data)
}).catch(err => {
    //err是获取定位失败的错误对象
    console.log(err)
})

//也可以通过async/await异步阻塞方式获取定位数据
let data = null
try {
    await this.FlexBridge.getLocation()
} catch (err) {
    console.log(err)
}

注意

flexbridge发布新版本时,如果仅修复bug,则只会改变版本号最右侧一位。增加功能时,会改变中间位置版本号。不再向前兼容或变动较大时,会改变最左侧一位。因此,如果你的业务接入稳定后,希望不受flexbridge升级影响,请将package.json中"@hybrid/flexbridge"包版本前缀符号“~”或“^”去掉。

# 额外说明

# 异步调用方法

除非特别说明,除了部分工具方法外,所有桥接方法都是异步执行的。因此,应使用Promise模式的then方法来获取结果,使用catch方法来获取错误对象,使用finally方法执行必须的代码。如果你的运行环境有ES7垫片,还可以使用async/await模式。

# 方法异常时返回的错误对象

SDK中的所有方法,如果会返回错误对象,一律遵循如下格式:

{
    code: 1, //错误码(一定有,999表示该方法尚未实现,998表示FlexBridge加载失败,更多错误码参见具体方法说明)
    message: "错误文案", //错误描述文案(不一定有)
    exception: error //错误对象(错误堆栈或内部错误码,不一定有)
}
更新时间: 12/16/2019, 2:39:12 PM