云服务器内容精选
-
BPM相关(非原子级) 获取参数信息 API:context.$bp.loadVariables() 入参:无。 出参:参数对象。 示例: context.$bp.loadVariables().then(function (data) { context.$model.ref("loanRequestData").setData(data.result.LoanRequestData); context.$model.ref("statusUpdates").setData(data.result.Status); context.$model.ref("negotiateCount").setData(data.result.NegotiateCount); }); 设置BPM中的变量 API:context.$bp.putVariables (variables:object, instId: string) 入参:“variables”为参数对象,必选;“instId”为实例ID,可选。 出参:执行结果。 示例: context.$bp.putVariables({ LoanRequest: "test" }); 数据提交到BPM API:context.$bp.submitTask (variables:object) 入参:“variables”为参数对象,必选。 出参:无。 示例: var data = context.$model.ref("loanRequestData").getData(); context.$bp.submitTask({ LoanRequest: data });
-
其他 启动定时任务 API:context.timerTask(_timerHandler, _timeout, _executionCondition); 入参:分别是定时执行的业务逻辑、任务时间间隔、执行条件。 示例: // 任务间隔时间,毫秒 var _timeout = 1000; // 定时执行业务逻辑 var _timerHandler = function() { // TODO: Your business logic }; // 执行条件 var _executionCondition = function() { return true; }; // 启动定时任务 context.timerTask(_timerHandler, _timeout, _executionCondition);
-
服务编排相关 初始化Flow API:context.flow(flowName) 入参:flowName表示Flow名称。 出参:Flow 示例: // 初始化Flow let _flow = context.flow("flowName") 设置Flow版本号 API:_flow.version(version: string) 入参:version表示flow版本号。 出参:Flow。 示例: // 设置Flow版本号 _flow.version("0.0.1") 运行Flow API:flow.run(params: Object) 入参:params,输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 适用于一次调用,Flow即完成的场景 // 运行Flow _flow.run({ param1: 'param1' }).then(function (res) { // TODO: Youre business logic }) 启动Flow API:_flow.start(params: Object) 入参:params,输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 以下适用于多步操作的业务场景 _flow.start({ param1: 'param1' }).then(function (res) { // TODO: Youre business logic }) 执行Flow下一步 API:_flow.next(interviewID: string, params: Object) 入参:interviewID为Flow运行实例ID,params为输入参数。 { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 下一步 _flow.next("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic }) 返回Flow上一步 API:_flow.back(interviewID: string, params: Object) 入参:interviewID为Flow运行实例ID,params为输入参数。 { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 上一步 _flow.back("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic }) 正常完成Flow API:_flow.finish(interviewID: string, params: Object) 入参:interviewID表示Flow运行实例ID;params:输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 完成Flow _flow.finish("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic }) 恢复Flow运行 API:_flow.resume(interviewID: string, params: Object) 入参:interviewID表示Flow运行实例ID;params:输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 恢复Flow _flow.resume("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic }) 删除Flow实例 API:_flow.terminate(interviewID: string, params: Object) 入参:interviewID表示Flow运行实例ID;params:输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 删除Flow _flow.terminate("{{ interviewID }}", { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } }).then(function (res) { // TODO: Youre business logic })
-
服务请求 调用服务的API API:context.service('{{url}}').run(_inputParams) 入参:“url”为服务接口的URL,在APP或者BO视图下单击“服务”,可查看到封装Flow、脚本或者对象操作接口的URL。“_inputParams”为输入参数。 示例: var _inputParams = {}; // 调用服务 context.service('{{ url }}').run(_inputParams).then(function(response) { // TODO: Your business logic });
-
BPM相关(原子级) context.$bp和context.$bpm的区别在于后者保证了操作的原子性。例如,调用context.$bp.submitTask (variables:object)数据提交成功时,会有弹框提示且点击“确定”按钮会自动关闭当前页面。而调用context.$bpm.submitTask (variables:object)提交时,只会提交任务而不会有后续的弹框提示等操作;并且当不在BPM上下文环境中提交任务时(即当BPM实例没有运行时提交任务),会有相关提示信息。 推荐使用context.$bpm。 获取参数信息 API:context.$bpm.loadVariables() 入参:无。 出参:参数对象。 示例: context.$bpm.loadVariables().then(function (data) { context.$model.ref("loanRequestData").setData(data.result.LoanRequestData); context.$model.ref("statusUpdates").setData(data.result.Status); context.$model.ref("negotiateCount").setData(data.result.NegotiateCount); }); 设置BPM中的变量 API:context.$bpm.putVariables (variables:object, instId: string) 入参:“variables”为参数对象,必选;“instId”为实例ID,可选。 出参:执行结果。 示例: context.$bpm.putVariables({ LoanRequest: "test" }); 数据提交到BPM API:context.$bpm.submitTask (variables:object) 入参:“variables”为参数对象,必选。 出参:无。 示例: var data = context.$model.ref("loanRequestData").getData(); context.$bpm.submitTask({ LoanRequest: data });
-
模型相关 获取data model= model_1实例的数据。 API:$model.ref("model_1").getData() 设置data model= model_1实例的数据,入参data和model_1定义结构一致,当改变整个模型数据时使用。 API:$model.ref("model_1").setData(data) 设置data model= model_1实例的字段值,只改变已有模型数据某个字段值时使用。 API:$model.ref("model_1").setValue(field, value)
-
Tab页相关 仅支持平台的运行态使用,可使用portal框架暴露的API来实现,平台运行态会暴露一个 bingo 全局变量供使用,标准页面由于在 iframe 内,需要使用 window.parent.bingo 访问: 打开tab页,返回tabId。 API:openTab(name, url) 切换tab页。 API:switchTab(tabId) 关闭指定Tab页。 API:removeTab(tabId) 当前Tab页。 API:getCurrentTab() 默认Tab页。 API:getDefaultTab() 打开指定Tab。 API:open({type:'Tab', id: tabId}) 打开指定Tab。 API:openTabByMenuName(menuName) 返回上一个路由。 API:back()
-
表单类 获取当前表单 API:context.$component.form 如果当前组件为表单,则直接返回。否则,根据组件上下文向上查找最近的表单组件。 根据组件Key值获取表单 API:context.getFormByKey(_formKey: number) 入参:表单组件的Key值,类型为number。 校验整个表单 API:_form.formValidate() _form为已获取的表单组件,返回promise。 API:_form. formValidateUnPromise 非promise,返回true/false。 表单的单字段校验: API:_form.validateField(prop, callback) 参数prop为需校验的属性,参数callback为检验完回调函数,返回错误信息。 示例: _form.validateField("name",function(errorMsg){ console.log("validate field", errorMsg) }); 表单重置 API:_form.resetFields() _form为已获取的表单组件。 表单提交 API:_form.formSave() _form为已获取的表单组件。API内部实现已先进行表单校验,校验成功后进行提交保存操作。
-
表格类 获取当前表格 API:context.$component.table 如果当前组件为表格,则直接返回。如果当前组件有关联的表格,则返回对应的表格(如表格查询条件、分页等)。否则,根据组件上下文向上查找最近的表格组件。 获取查询条件 API:_table.getCondition() _table为已获取的表格组件,返回表格绑定的查询条件。 设置查询条件 API: // 先获取条件,再进行赋值 var condition = _table.getCondition(); // 字段满足单个条件,默认操作是contains condition.queryInfo = { "fieldName": "1" } // 字段满足单个条件,使用自定义操作 condition.queryInfo = { "fieldName": { operator: "contains", value: "1" } } // 字段满足多个条件 condition.queryInfo = { "fieldName": [{ operator: "contains", value: "1" }, { operator: "contains", value: "2" }] } // 分页条件 condition.pageInfo: { "pageSize": 10, "curPage": 1 } 其中,“_table”为已获取的表格组件。 入参:表格查询条件。 执行查询 API:_table.doQuery() 其中,“_table”为已获取的表格组件。 初始化行数据 API:_table.rowInit() 其中,“_table”为已获取的表格组件,初始化一条新的行数据,此方法执行后,数据并未添加到表格。 添加行数据 API:_table.addrow(newRowData: object) 其中,“_table”为已获取的表格组件,此方法将初始化好的行数据添加到表格,此方法执行后,数据仅在前端表格保存,并未持久化到后端。 入参:行数据。 获取表格当前选中的行数据 API: _table.getSelectedData() 其中,“_table”为已获取的表格组件。 删除表格行数据 API:_table.doDelete(rows: array) 其中,“_table”为已获取的表格组件。 入参:表格行数据列表。 示例: // 当前表格 let _table = context.$component.table // 获取当前选中的行 let rows = _table.getSelectedData() // 删除选中行 _table.doDelete(rows) 获取表格修改的数据(新增、修改、删除) API:_table.getOperatedData() 其中,“_table”为已获取的表格组件。 保存表格数据 API:_table.doSave(operatedData: object) 其中,“_table”为已获取的表格组件,此方法将当前表格做的修改操作进行持久化操作。 入参:修改的表格数据。 示例: // 当前表格 let _table = context.$component.table // 获取修改的数据 let operatedData = _table.getOperatedData() // 提交表格修改 _table.doSave(operatedData)
-
组件类 获取当前组件 context.$component.current 根据KEY获取组件 API:context.$component.get(_compKey: number) 入参:组件KEY,类型为number。 出参:Component。 示例如下: let _compKey = 1546395654403000 let _component = context.$component.get(_compKey) 根据名称获取组件 API:context.$component.get(_compName: string) 示例如下: let _compName = 'input_1' let _component = context.$component.get(_compName) 获取组件绑定的模型 API:_component.getDataModel() _component为当前操作的组件。 示例如下: let _component = context.$component.current let _model = _component.getDataModel()
-
脚本操作 初始化Script API:context.script(scriptName) 入参:scriptName,表示Script名称。 出参:Script 示例: // 初始化脚本 let _script = context.script('{{ scriptName }}') 运行Script API:_script.run() 入参:无。 出参:Promise。 示例: // 初始化脚本 let _script = context.script('{{ scriptName }}') // 运行脚本 _script.run().then(function(response) { // TODO: Your business logic })
-
页面类 获取当前页面 API:context.$page.current 当前页面绑定的数据模型 API:context.$page.getModel() 页面URL参数 API:context.$page.params.paramName 示例: // 假设当前页面URL为:https://localhost:8080/besBaas/page#/std_1?a=1&b=2, 则获取URL参数方式如下: let paramA = context.$page.params.a let paramB = context.$page.params.b 在新的导航条打开页面 API:context.$page.open(url: string, queryString: string) 入参:url表示页面地址。queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 示例: context.$page.open('https://localhost:8080/besBaas/page#/std_2', 'a=1&b=2') 在当前导航条打开页面 API:context.$page.load(url: string, queryString: string) 刷新当前页面 API:context.$page.reload() 在新的导航条打开标准页面 API:context.$page.openStdPage(pageName: string, queryString: string) 入参:pageName表示页面名称。queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 示例: context.$page.openStdPage('std_2', 'a=1&b=2') 在当前导航条打开标准页面 API:context.$page.loadStdPage(pageName: string, queryString: string) 在新的导航条打开高级页面 API:context.$page.openAdvPage(pageName: string, websiteName:string, queryString: string) 入参:pageName表示页面名称。websiteName表示为高级页面的站点名称,queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 在当前导航条打开高级页面 API:context.$page. loadAdvPage (pageName: string, websiteName:string, queryString: string) 关闭当前页面 API:window.close() 图2 关闭页面语句
-
对象操作 获取对象 API:context.object(objectName) 入参:objectName,对象名称。 出参:对象。 示例如下: let _object = context.object("objectName") 查询对象所有数据 API: _object.query().then(function (response) { // TODO: Your business logic }) 查询满足条件数据 例如,查询满足name = 'test' 条件的对象数据,代码如下: let _condition = {conjunction: 'AND', conditions: [{ field: 'name', operator: 'eq', value: 'test' }] } _object.query({condition:_condition}).then(function (response) { // TODO: Your business logic }) 统计满足条件的对象数据数量 API:_object.count(_condition) 其中,“_object”为对象名称。 入参:_condition,查询条件,可选。 出参:Promise。 示例: // 统计所有数据 _object.count().then(function (response) { // TODO: Your business logic }) // 统计满足条件数据 _object.count(_condition).then(function (response) { // TODO: Your business logic }) 查询满足条件数据, 且只查询部分字段 let _fields = 'id,name' _object.query({condition:_condition}, _fields).then(function (response) { // TODO: Your business logic }) 查询满足条件数据, 且只查询部分字段, 支持分页和排序 例如,根据name字段降序排序,跳过前10条记录分页,每页最多显示10条数据。示例代码如下: let _fields = 'id,name' let _options= {'skip': 10,'limit': 10,'orderby': [{'field': 'name','order': 'desc'}]} _object.query({condition:_condition}, _fields, _options).then(function (response) { // TODO: Your business logic }) 通用对象数据查询 API:_object.query({condition:_condition}, fields: string) 入参:_condition,查询条件,可选,参考如下结构。 { conjunction: 'AND', // 条件连接符,AND 或 OR conditions: [ { field: 'name', // 条件字段 operator: 'eq',// 条件比较符 value: 'test' // 条件值 }, { condition: { // 嵌入条件 conjunction: 'OR', conditions: [ { field: 'status', operator: 'eq', value: '1' }, { field: 'status', operator: 'eq', value: '2' } ] } } ] } 以上示例表达内容为:name = 'test' && ( status = '1' || status = '2') fields:查询字段(只返回指定的字段),多个字段以逗号分割,可选。 出参:Promise。 插入对象数据,支持批量操作 API:_object.insert(data: Object[]) 入参:data,待插入数据,对象数组。 出参:Promise,返回新插入数据的记录ID。 示例: let data = [{ name: 'test', label: 'test' }] _object.insert(data).then(function (response){ if (response && '0' === response.resCode) { let _id = response.result[0].id}}) 根据记录ID更新对象数据 API:_object.updateByID(_id: string, data: Object) 入参:id表示记录ID,data表示对象更新内容。 出参:Promise。 示例: let _id = '{{ id }}' // 根据记录ID更新数据 _object.updateByID(_id, { label: 'test2' }).then(function (response) { // TODO: Your business logic }) 根据记录ID查询对象数据 API:_object.queryByID(_id: string) 入参:id表示记录ID。 出参:Promise。 示例: let _id = '{{ id }}' // 根据记录ID查询单条数据 _object.queryByID(_id).then(function (response) { // TODO: Your business logic }) 根据记录ID删除对象数据 API:_object.deleteByID(_id: string) 入参:id表示对象记录ID。 出参:Promise。 示例: let _id = '{{ id }}' // 根据记录ID删除数据 _object.deleteByID(_id).then(function (response) { // TODO: Your business logic }) 根据记录ID批量查询对象数据 API:_object.batchQueryByIDs(_ids: string, fields: string) 入参:ids表示记录ID,多个ID以逗号分割。fields表示查询字段,多个字段以逗号分割,可选。 出参:Promise。 示例: _object.batchQueryByIDs('id1,id2,id3').then(function (response) { // TODO: Your business logic }) 根据记录ID批量删除对象数据 API:_object.batchDeleteByIDs(_ids: string) 入参:ids表示记录ID,多个ID以逗号分割。 出参:Promise。 示例: _object.batchDeleteByIDs('id1,id2,id3').then(function (response) { // TODO: Your business logic }) 批量插入或更新对象数据 API:_object.batchUpsert(data: Object[]) 入参:data,待插入或更新的数据对象,包含id时表示进行更新。 出参:Promise。 示例: let data = [{id: '1538033158273005', label: 'test'}, {name: 'test', label: 'test'}] _object.batchUpsert(data).then(function (response) { // TODO: Your business logic })
-
脚本中预置的API AstroZero平台的脚本引擎采用TypeScript语言。脚本执行时,TypeScript语言会被翻译成JavaScript语言,由JavaScript引擎执行。 在JavaScript es5的官方标准库外,AstroZero还扩展了10+预置标准库(即预置API),帮助您更高效地开发脚本,标准库说明如表1所示。有关预置标准库的详细说明,请参考脚本标准库。 库的使用方法举例: import * as http from 'http'; 表1 标准库说明 标准库名称 说明 sys 提供系统层面的操作,例如获取系统参数值、提供alarm脚本库在脚本里埋点上报告警。 context 脚本执行的上下文,例如获取当前租户ID、获取当前登录用户ID等。 action 定义脚本的输入输出方法,以及调用脚本的方法。 buffer 操作二进制缓存区,例如将缓冲区内容转换为字符串。 setup 对系统对象Standard Object的增、删、改、查。 db 对自定义对象Customer Object的增、删、改、查。 sql 执行sql语句,目前只支持执行select查询语句。 bo 对Business Object的增、删、改、查。 meta 操作object的元数据,例如获取字段名称、获取字段长度。 http http或者https操作。 iconv 将字符串转为GBK、GB18030、GB2132或ISO8859_1编码格式,或者解码字符串。 crypto 加密操作,包含对哈希、HMAC、加密、解密、签名及验证的封装。 decimal 将从http请求或从数据库中查询出来的number类型值,转换成Decimal类型,并能进行加、减、乘、除等数学运算。 excel 操作Excel文件,例如生成Excel文件。 text 操作文本,例如将文本转换为二进制。 xml 操作XML文件,例如读取XML文件内容。 uuid 生成全局唯一标识。 父主题: 预置API
-
组件 在开发自定义组件时,需要定义“组件名.js”文件,该文件为组件逻辑文件,是整个组件的渲染核心JS,在组件编辑状态和页面最终的发布运行态都会被加载执行。主要包含的预置API说明,请参见表1。 表1 组件名.js中预置API说明 分类 API及说明 组件实例预置API init方法:主要包含组件渲染需要初始化数据的入口函数。 render方法:负责整个组件渲染的业务逻辑方法。 getConnectorProperties:获取桥接器属性的配置值。 getConnectorInstanceByName:通过桥接器的变量名称获取桥接器实例,其中“APIConnector”类型为String,表示桥接器的变量名称。 ConnectorIns.process(renderCbk, errCbk):通过桥接器实例调用process函数,主要作用为发起调用服务的请求和处理返回结果信息。 在通过process函数发起请求前,需设置桥接器实例的requestParams属性为请求的参数,例如:ConnectorIns.requestParams = param; 参数renderCbk,类型为Function,当返回结果信息后调用该函数,用于处理返回信息。 参数errCbk,类型为Function,调用该函数来处理错误。 ConnectorIns.query(param):通过桥接器实例调用query函数,主要作用为发起调用服务的请求和处理返回结果信息,参数说明如下: param:请求参数。 其返回结果为Promise对象。 getProperties:用于返回该组件的自定义属性值。 开发Widget时,可以给组件自定义属性,在开发界面可对这些属性进行配置,通过getProperties方法可返回自定义属性值。例如,var properties = thisObj.getProperties()。 getContainer:用于返回渲染该组件的容器dom节点。 代码示例:var elem = thisObj.getContainer (),然后通过jquery去查询组件中某个dom节点时,可通过$("#id", elem)的方式来获取。 getWidgetBasePath:用于返回该组件静态资源的根路径。 例如,某个组件的静态资源路径为“https://10.10.10.1:12900/default/0000000000NABzEjpNIH/assets/bundle/widget/172a6056501-a6f8ce1f-2ed9-4a9a-b883-251aaac14e0a/v1591923270914/test0609.js”,执行thisObj.getWidgetBasePath()返回“https://10.10.10.1:12900/default/0000000000NABzEjpNIH/assets/bundle/widget/172a6056501-a6f8ce1f-2ed9-4a9a-b883-251aaac14e0a/v1591923270914” 。 getMessages:返回该组件国际化配置文件中定义的国际化文件内容,需要配置vue和vueI18n使用。 例如,开发组件时定义了messages-en.json和messages-zh.json国际化文件。thisObj.getMessages()返回的就是这两个文件中定义的国际化内容。 hideWidget:隐藏该组件的dom结构,预览时调用该方法可以隐藏Widget。 例如,执行thisObj.hideWidget()方法,隐藏该组件的dom结构。 showWidget:显示该组件的dom结构,预览时调用该方法可以展示Widget。 例如,执行thisObj.showWidget()方法,显示该组件的dom结构。 SITE_ROOT_PATH:为AstroZero预置的参数,用于获取当前站点URL地址的根路径。站点和应用是一对一的关系,当创建应用时,系统默认会创建并分配一个站点。 假如,某个页面的URL地址为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1”,则使用SITE_ROOT_PATH获取的根路径为“/magno/render/cool__app_0000000000NABzEjpNIH”。 triggerEvent:用于触发事件,参数说明如下: eventName:指定触发的事件名称。 {}:为事件触发时传递的参数赋值,例如{param: value}。 Studio对象预置API Studio.registerWidget:用来定义组件。 Studio.registerConnector:用来定义桥接器。 Studio.registerEvents:用于注册事件,只有通过此API注册后的事件才会在组件的事件列表中展现。 thisObj:当前组件实例对象,指为该组件注册事件。 "eventName":事件名称,应该与触发事件API中的第一个参数保持一致。 "Event Label":事件标签名,在事件列表中展示的事件标题。 []:定义该事件触发时传递的参数模型,例如[{"name": "param"}] 。 Studio.registerAction:用来注册动作。只有通过此API注册后的事件,才会在组件的动作列表中展现。 thisObj:当前组件实例对象,指为该组件注册动作。 actionName:动作名称。 Action Label:动作标签名,在动作列表中展示的动作标题。 []:事件触发时传入的参数。 $.proxy(this.receiveActionCbk, this):该动作的回调函数,在回调函数中定义该动作的执行逻辑。 []:此参数在开发过程中置为空数组即可。 Studio.registerRouter:用来定义路由。 Studio.inReader:判断当前页面状态是开发态或预览态。其中,“true”表示在预览态(即运行态),“false”表示在开发态。 StudioToolkit.getCatalogProperties():用于获取当前站点的元数据。 magno对象预置API savePropertiesForWidget(props):用于在开发态中保存当前组件的高级设置属性信息,参数为要设置的相关属性集对象。 参数props示例: { "prop1": "value1", "prop2": ""value2" } HttpUtils工具类预置API AstroZero平台内置了HttpUtils工具类,预置API如下: HttpUtils.getCookie:用于获取某个cookie的值。 代码示例:HttpUtils.getCookie() HttpUtils.setCookie:用于设置cookie的值。 代码示例:HttpUtils.setCookie("key","value") HttpUtils.getI18n:返回一个Vue18n的实例,配合Vue和VueI18n使用。该Vue18n实例可以在new一个Vue实例时赋值为i18n参数。 代码示例:HttpUtils.getI18n({locale: HttpUtils.getLocale(), messages: thisObj.getMessages()}) HttpUtils.getCsrfToken:通过ajax的方式去调用平台的接口时使用。如果使用平台桥接器的方式,平台会自动在请求header中,添加csrf-token头。 HttpUtils.getCsrfToken(function(csrfToken) { $.ajax({ …. headers: { CS RF-Token: csrfToken }, }) }) HttpUtils.refreshToken:用于手动刷新页面的accesstoken,通常用在执行退出逻辑时,执行该方法刷新页面的access token。 HttpUtils.getUrlParam:用于获取查询字符串中的参数。 例如,某个页面的URL为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1?param=1”, 通过执行HttpUtils.getUrlParam("param")返回该参数的值“1”。 HttpUtils.getLocalStorage:用于获取某个localStorage的值。 代码示例:HttpUtils.getLocalStorage("key") HttpUtils.setLocalStorage:用于设置某个localStorage的值。 代码示例:HttpUtils.setLocalStorage("key","value")
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格