rn_supermap
Version:
rn_supermap 一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。
108 lines (99 loc) • 3.59 kB
JavaScript
/*********************************************************************************
Copyright © SuperMap. All rights reserved.
Author: Wang zihao
E-mail: pridehao@gmail.com
**********************************************************************************/
import {NativeModules} from 'react-native';
let SB = NativeModules.JSServiceBase;
/**
* @class ServiceBase
* @description iServer 所有服务的基类(*请注意该类所有方法仅支持android端,iOS端请不要调用此方法)。
*/
export default class ServiceBase {
static REQUESTFAILED = "com.supermap.services.ServiceBase.requestFailed";
static REQUESTSUCCESS = "com.supermap.services.ServiceBase.requestSuccess";
static RECEIVERESPONSE = "com.supermap.services.ServiceBase.receiveResponse";
static DATASERVICEFINISHED = "com.supermap.services.ServiceBase.dataServiceFinished";
/**
* 获得URL远程路径
* @memberOf ServiceBase
* @returns {Promise}
*/
async getUrl(){
try{
var url = await SB.getUrl(this._SMServiceBaseId);
return url;
}catch(e){
console.error(e);
}
}
/**
* 设置URL远程路径
* @memberOf ServiceBase
* @param url - URL路径
* @returns {Promise.<void>}
*/
async setUrl(url){
try{
await SB.setUrl(this._SMServiceBaseId,url);
}catch(e){
console.error(e);
}
}
/**
* 设置服务器名称
* @memberOf ServiceBase
* @param serverName - 服务器名称
* @returns {Promise.<void>}
*/
async setServerName(serverName){
try{
await SB.setServerName(this._SMServiceBaseId,serverName);
}catch(e){
console.error(e);
}
}
/**
* 设置相应回调
* @memberOf ServiceBase
* @param {function} requestFailed - 请求失败处理函数
* @param {function} requestSuccess - 请求成功处理函数
* @param {function} receiveResponse - 接受响应处理函数
* @param {function} dataServiceFinished - 数据服务完成处理函数
* @returns {Promise.<void>} -
*/
async setResponseCallback(requestFailed,requestSuccess,receiveResponse,dataServiceFinished){
try {
DeviceEventEmitter.addListener(this.REQUESTFAILED,function (e) {
if(typeof requestFailed == 'function'){
requestFailed(e);
}else{
console.error("Could not find the first argument.");
}
});
DeviceEventEmitter.addListener(this.REQUESTSUCCESS,function (e) {
if(typeof requestSuccess == 'function'){
requestSuccess(e);
}else{
console.error("Could not find the second argument.");
}
});
DeviceEventEmitter.addListener(this.RECEIVERESPONSE,function (e) {
if(typeof receiveResponse == 'function'){
receiveResponse(e);
}else{
console.error("Could not find the second argument.");
}
});
DeviceEventEmitter.addListener(this.DATASERVICEFINISHED,function (e) {
if(typeof dataServiceFinished == 'function'){
dataServiceFinished(e);
}else{
console.error("Could not find the second argument.");
}
});
}catch(e){
console.error(e);
}
}
}