var da = {}; da.djJsNeedInterface = true; da.djJsReady = false; da.djJsDebug = false; da.readyFun; da.errorFun; da.functionMap = {}; da.version; da.djInjs = false; da.dajia_eval = function (data) { try { return eval('(' + data + ')'); } catch (e) { } return undefined; }; /** * 移动端底层调用,确定移动端已经准备好了 * @param data ['ok'|'error'|{msg:['ok']}] */ da.check = function (data) { this.djInjs = true; if (data == "ok") { this.djJsReady = true; if (this.readyFun) this.readyFun(); return; } if (data == "error") { this.djJsReady = false; if (this.errorFun) this.errorFun(); return; } if (typeof (data) != "object") { data = this.dajia_eval('(' + data + ')'); } if (data.msg == "ok") { this.djJsReady = true; this.functionMap = data.fun || {}; if (this.readyFun) this.readyFun(); } else { this.djJsReady = false; if (this.errorFun) this.errorFun(); } }; /** * 判断方法是否可以执行 * @returns {boolean} */ da.canTrans = function () { return this.djJsReady && typeof(djInternal) != 'undefined'; }; /** * 开启调试模式,调用的所有api的返回值会在客户端alert出来 * @param v debug [true|false] */ da.config = function (v) { this.djJsDebug = v.debug; this.djJsNeedInterface = true; }; da.ready = function (v) { this.readyFun = v; if (this.djInjs && da.djJsReady) { this.readyFun(); } }; da.error = function (v) { this.errorFun = v; if (this.djInjs && da.djJsReady == false) { this.errorFun(); } }; /** * 判断方法是否已经实现 * @param v.funName:需要检查的方法名 */ da.checkFun = function (v) { if (this.functionMap && this.dajia_eval('this.functionMap.' + v.funName)) { v.success(); } else if (this.canTrans()) { djInternal.callHandler('checkFun', {'funName': v.funName}, function (callback) { switch (callback.code) { case 'success': v.success(); break; case 'fail': v.fail && v.fail(); break; default: v.fail && v.fail(); break; } }); } else { v.fail && v.fail(); } }; /** * * @param v.reScan: * @param v.sid: * @return success.res: * @return fail.res: */ da.scanDevice = function (v) { if (this.canTrans()) djInternal.callHandler('scanDevice', {'reScan': v.reScan, 'sid': v.sid}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * * @param v.pid: * @param v.sid: * @param v.rcid: * @param v.wcid: * @return success.res: * @return fail.res: */ da.connectPeripheralAndRead = function (v) { if (this.canTrans()) { djInternal.callHandler('connectPeripheralAndRead', {'pid': v.pid, 'sid': v.sid, 'rcid': v.rcid, 'wcid': v.wcid}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * * @param v.pid: * @param v.sid: * @param v.rcid: * @param v.wcid: * @param v.content: * @return success.res: * @return fail.res: */ da.connectPeripheralAndWrite = function (v) { if (this.canTrans()) { djInternal.callHandler('connectPeripheralAndWrite', { 'pid': v.pid, 'sid': v.sid, 'rcid': v.rcid, 'wcid': v.wcid, 'content': v.content }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 显示信息流的阅读列表 * @param v.feedID:信息流id * @param v.communityID:社区id */ da.showReadList = function (v) { if (this.canTrans()) { djInternal.callHandler('showReadList', {'feedID': v.feedID, 'communityID': v.communityID}); } }; /** * 显示信息流的赞列表 * @param v.feedID:信息流id * @param v.communityID:社区id */ da.showPraiseList = function (v) { if (this.canTrans()) { djInternal.callHandler('showPraiseList', {'feedID': v.feedID, 'communityID': v.communityID}); } }; /** * 显示信息流的回复列表 * @param v.feedID 信息流id * @param v.communityID 社区 */ da.showCommentList = function (v) { if (this.canTrans()) { djInternal.callHandler('showCommentList', {'feedID': v.feedID, 'communityID': v.communityID}); } }; /** * 跳转到个人空间 * @param v.personID:人员ID * @param v.personName:人员姓名 */ da.showPerson = function (v) { if (this.canTrans()) { djInternal.callHandler('showPerson', {'personID': v.personID, 'personName': v.personName}); } }; /** * 跳转到群空间 * @param v.groupID:群组ID * @param v.groupName:群组名 * @return success.res: * @return fail.res: */ da.showGroup = function (v) { if (this.canTrans()) { djInternal.callHandler('showGroup', {'groupID': v.groupID, 'groupName': v.groupName}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 加入社区 * @param v.communityID:社区ID */ da.joinCommunity = function (v) { if (this.canTrans()) { djInternal.callHandler('joinCommunity', {'communityID': v.communityID}); } }; /** * 切换到指定社区 * @param v.communityID:社区ID * @param v.communityName:社区名 */ da.enterCommunity = function (v) { if (this.canTrans()) { djInternal.callHandler('enterCommunity', {'communityID': v.communityID, 'communityName': v.communityName}); } }; /** * 进入体验社区 * @param v.communityID:社区ID * @param v.username:用户名 * @param v.password:密码 */ da.enterExperience = function (v) { if (this.canTrans()) { djInternal.callHandler('enterExperience', { 'communityID': v.communityID, 'username': v.username, 'password': v.password }); } }; /** * 加入群组 * @param v.communityID:社区ID * @param v.communityID:群组ID */ da.joinGroup = function (v) { if (this.canTrans()) { djInternal.callHandler('joinGroup', {'communityID': v.communityID, 'groupID': v.groupID}); } }; /** * 跳转到图片预览功能 * @param v.current:当前显示的图片 * @param v.ids:需要预览的图片ID列表 * @param v.isUrl: * */ da.showPicList = function (v) { if (this.canTrans()) djInternal.callHandler('showPicList', {'current': v.current, 'ids': v.ids, 'isUrl': v.isUrl}); }; /** * 跳转到附件预览功能 * @param v.fileID:文件ID * @param v.fileName:文件名 * @param v.fileSize:文件大小 */ da.showFile = function (v) { if (this.canTrans()) { djInternal.callHandler('showFile', {'fileID': v.fileID, 'fileName': v.fileName, 'fileSize': v.fileSize}); } }; /** * 跳转到地理位置查看功能 * @param v.lat:纬度 * @param v.lon:经度 * @param v.name:地标名 * @param v.addr:位置描述 */ da.showLocation = function (v) { if (this.canTrans()) { djInternal.callHandler('showLocation', {'lat': v.lat, 'lon': v.lon, 'name': v.name, 'addr': v.addr}); } }; /** * 获取地理位置功能 * @param v.lat:纬度 * @param v.lon:经度 * @param v.name:地标名 * @param v.addr:位置描述 * @return success.res: * @return fail.res: */ da.getLocation = function (v) { if (this.canTrans()) { djInternal.callHandler('getLocation', { 'current': v.current, 'lat': v.lat, 'lon': v.lon, 'name': v.name, 'addr': v.addr }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 调取扫一扫功能 * @param v.needResult:[0|1] // 默认为0、扫描结果由大家社区处理,1、则直接返回扫描结果 * @return success.res:扫描结果 */ da.showScan = function (v) { if (this.canTrans()) { djInternal.callHandler('showScan', {'needResult': v.needResult}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 解析二维码图片 * @param v.url: * @return success.res: */ da.showQRCode = function (v) { if (this.canTrans()) { djInternal.callHandler('showQRCode', {'url': v.url}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 获取网络类型 * @return success.res:none:无网络 2g:2g网络 3g:3g网络 4g:4g网络 wifi:wifi */ da.getNetWorkType = function (v) { if (this.canTrans()) { djInternal.callHandler('getNetWorkType', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 选择图片(ios不支持) * @param v.type [1|2] 1、只拍照,2、相册选取图片 * @return res.returnType 返回类型 : 2-base64 * @return res.current 当前已存在的张书 * @return res.returnType 获取图片的最大张数 */ da.chooseImage = function (v) { if (this.canTrans()){ djInternal.callHandler('chooseImage', {type: v.type, current: v.current, max: v.max, returnType: v.returnType}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 图片预览 * @param v.current 当前需要预览的图片再整体urls中的索引位置 * @param v.urls 当前需要预览的图片url集合 */ da.previewImage = function (v) { if (this.canTrans()) { djInternal.callHandler('previewImage', {'current': v.current, 'urls': v.urls}); } }; /** * 上传文件 * @param v.files: * @param v.isShowProgress: */ da.uploadFile = function (v) { if (this.canTrans()) { djInternal.callHandler('uploadFile', {'files': v.files, 'isShowProgress': v.isShowProgress}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 下载文件 * @param v.picId:图片ID * @param v.isShowProgressTips: */ da.downloadImage = function (v) { if (this.canTrans()) { djInternal.callHandler('downloadImage', {'picId': v.picId, 'isShowProgressTips': v.isShowProgressTips}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 关闭当前窗口 */ da.closeWindow = function () { if (this.canTrans()) { djInternal.callHandler('closeWindow'); } }; /** * 关闭当前窗口并弹出提示信息 * @param v.msg:消息 */ da.closeWindowWithMessage = function (v) { if (this.canTrans()) { djInternal.callHandler('closeWindowWithMessage', {'msg': v.msg}); } }; /** * 创建新窗口 * @param v.type:type="1" 时链接添加host:port并覆盖access_token */ da.createWindow = function (v) { if (this.canTrans()) { djInternal.callHandler('createWindow', {'type': v.type, 'url': v.url}); } }; /** * 显示提示信息 * @param v.type 显示提示的样式 0、普通(默认);1、警告;2、错误;9、顶部红条 * @param v.msg 提示语 */ da.showMessage = function (v) { if (this.canTrans()) { djInternal.callHandler('showMessage', {'msg': v.msg, 'type': v.type}); } }; /** * 显示分类提示 * @param v.type * @param v.style * @param v.msg */ da.showPrompt = function (v) { if (this.canTrans()) { djInternal.callHandler('showPrompt', { type: v.type, //标记提示 0:失败返回; 1: 提示我的服务单; 2:成功返回 ; 98:取消页面动作操作 99:恢复页面动作操作 style: v.style, //显示提示的样式 0:普通(默认) 1:警告 2:错误 9:顶部红条 msg: v.msg //提示语, 或者动作类型flush }); } }; da.statusWindow = function (v) { if (this.canTrans()) { djInternal.callHandler('statusWindow', {'type': v.type, 'msg': v.msg}); } }; /** * 网页回退 */ da.historyBack = function () { if (this.canTrans()) { djInternal.callHandler('historyBack'); } }; /** * app登录 * ios:忽略action参数 * android:只实现了action=-1的情况 * @param v.name 用户名 * @param v.pwd 密码 * @param v.action -1:进入登录也并填充数据 */ da.appLogin = function (v) { if (this.canTrans()) { djInternal.callHandler('appLogin', {'name': v.name, 'pwd': v.pwd, 'action': v.action}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转到指定native页面 * @param v.code: */ da.forward = function (v) { if (this.canTrans()) { djInternal.callHandler('forward', {'code': v.code}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 通知app表单提交成功 * @param v.formID 表单id * @param v.formRecordID 表单信息id * @param v.title 表单标题 */ da.saveFormFeed = function (v) { if (this.canTrans()) { djInternal.callHandler('saveFormFeed', {'formID': v.formID, 'formRecordID': v.formRecordID, 'title': v.title}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; da.setWebParam = function (v) { if (this.canTrans()) { djInternal.callHandler('setWebParam', { 'title': v.title, 'description': v.description, 'address': v.address, 'picID': v.picID, 'logoID': v.logoID, 'pageType': v.pageType, 'pageID': v.pageID, 'isPreview': v.isPreview }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; da.requestPortalTopic = function (v) { if (this.canTrans()) { djInternal.callHandler('requestPortalTopic', {'version': v.version, 'isCache': v.isCache}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 触发native跳转到对应的应用下 * 主要使用场景再portal中 * @param v.tagID 应用ID */ da.touchPortalTopic = function (v) { if (this.canTrans()) { djInternal.callHandler('touchPortalTopic', {'tagID': v.tagID}); } }; /** * 请求我的群组数据 主要使用场景再portal tab签中 * @param v.page:页码 * @param v.count:分页条数 * @param v.view * @param v.style * @param v.isCache */ da.requestPortalGroup = function (v) { if (this.canTrans()) { djInternal.callHandler('requestPortalGroup', { 'page': v.page, 'count': v.count, 'view': v.view, 'style': v.style, 'isCache': v.isCache }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * * @param v.page [0|1] 0、请求首页;>0:tab签请求 */ da.requestAllGroup = function (v) { if (this.canTrans()) { djInternal.callHandler('requestAllGroup', { 'page': v.page, 'count': v.count, 'view': v.view, 'style': v.style, 'isCache': v.isCache }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 请求加入群组,目前没有使用 * @param v */ da.requestJoinGroup = function (v) { if (this.canTrans()) { djInternal.callHandler('requestJoinGroup', {'groupID': v.groupID, 'groupType': v.groupType}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转到全部群组/搜索群组功能 * @param v.type 0、标识全部群组;1、标识搜索群组 */ da.showAllGroup = function (v) { if (this.canTrans()) { djInternal.callHandler('showAllGroup', {'type': v.type}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转到群组功能 */ da.showGroupList = function () { if (this.canTrans()) { djInternal.callHandler('showGroupList'); } }; /** * 跳转到群组搜索功能 */ da.showGroupSearch = function () { if (this.canTrans()) { djInternal.callHandler('showGroupSearch'); } }; /** * 获取对应应用的信息流,只取最新的指定条数,主要场景再portal中 * @param v.tagID 应用ID * @param v.tagName 应用名称 * @param v.count 条数 * @param v.style 回调参数 * @param v.isCache 是否使用缓存[true|false] */ da.requestPortalFeed = function (v) { if (this.canTrans()) { djInternal.callHandler('requestPortalFeed', { 'tagID': v.tagID, 'tagName': v.tagName, 'count': v.count, 'style': v.style, 'isCache': v.isCache }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 获取对应应用的商品 * @param v */ da.requestPortalShop = function (v) { if (this.canTrans()) { djInternal.callHandler('requestPortalShop', { 'tagID': v.tagID, 'page': v.page, 'count': v.count, 'isCache': v.isCache, 'rowType': v.rowType }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转到商品详情页面 * @param v.productID 商品ID */ da.showProduct = function (v) { if (this.canTrans()) { djInternal.callHandler('showProduct', {'productID': v.productID}); } }; /** * 跳转到信息流详情页面 * @param v.feedID 信息流ID */ da.showFeedDetail = function (v) { if (this.canTrans()) { djInternal.callHandler('showFeedDetail', {'feedID': v.feedID}); } }; /** * 跳转到新建信息流页面 * @param v.topicID topicPresetID * @param v.tagID companyMenuID */ da.createFeed = function (v) { if (this.canTrans()) { djInternal.callHandler('createFeed', {'topicID': v.topicID, 'tagID': v.tagID}); } }; /** * 获取图片 * @param v.picID 图片id * @param v.size 1:小图;2:大图;3:中图 * @param v.type 0:普通图片;1:人员头像;2:群组头像;3:社区头像 * @param v.cdnAddr cdn地址(不填) */ da.getPic = function (v) { if (this.canTrans()) { djInternal.callHandler('getPic', {'picID': v.picID, 'size': v.size, 'type': v.type, 'cdnAddr': v.cdnAddr}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 第三方系统调起app支付 * @param v.orderID: 订单ID * @param v.merchantId: 商户ID * @param v.subject: 标题 * @param v.desc: 描述 * @param v.orderAmount: 订单总金额 * @param v.paymentType: 支付方式 101:支付宝(默认) 201:微信 */ da.thirdPartyOrderAppPay = function (v) { if (this.canTrans()) { djInternal.callHandler('payCheck', { 'orderID': v.orderID, 'merchantId': v.merchantId, 'orderAmount': v.orderAmount, 'paymentType': v.paymentType, "subject": v.subject, "desc": v.desc, "checkOrder" : "0" }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 系统支付校验,校验成功后自动调起ap支付 * * orderID: 订单ID * merchantId: 商户ID * companyID: 社区id * subject: 商品名称 * desc: 商品描述 * orderAmount: 订单总金额 * paymentType: 支付方式 101:支付宝(默认) 201:微信 * @param v */ da.payCheck = function (v) { if (this.canTrans()) { djInternal.callHandler('payCheck', { 'orderID': v.orderID, 'merchantId': v.merchantId, 'companyID': v.companyID, 'orderAmount': v.orderAmount, 'paymentType': v.paymentType, "subject": v.subject, "desc": v.desc, "checkOrder" : "1" }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; da.pingpay = function (v) { if (this.canTrans()) { djInternal.callHandler('pingpay', {'content': v.content}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 发起app登录 * 如果app端已经登录会直接返回 {personID:'',companyID:'',accessToken:''} * @param v.currentUrl 没有使用 */ da.needLogin = function (v) { if (this.canTrans()) { djInternal.callHandler('needLogin', {'currentUrl': v.currentUrl}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 调用App的显示分先菜单的操作 * @param v * v.optList ['menuItem:share:appMessage' 分享到微信好友 * |'menuItem:share:timeline' 分享到微信朋友圈 * |'menuItem:share:weiboApp' 分享到新浪微博 * |'menuItem:share:QZone' 分享到QQ空间 * |'menuItem:share:qq' 分享到QQ * |'menuItem:share:message' 分享到短信 * |'menuItem:share:email' 分享到Email * |'menuItem:openWithBrowser' 用浏览器打开操作 * |'menuItem:forward' 转发 * |'menuItem:refresh' 刷新操作 * |'menuItem:tipoff' ] 举报 * v.shareInfo.url * v.shareInfo.imageThumbUrl * v.shareInfo.shareDescription * v.shareInfo.shareTitle */ da.showOptMenu = function (v) { if (this.canTrans()) { djInternal.callHandler('showOptMenu', {'optList': v.optList, 'shareInfo': v.shareInfo}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 调用App的显示分先菜单的操作 * @param v * v.optList ['menuItem:share:appMessage' 分享到微信好友 * |'menuItem:share:timeline' 分享到微信朋友圈 * |'menuItem:share:weiboApp' 分享到新浪微博 * |'menuItem:share:QZone' 分享到QQ空间 * |'menuItem:share:qq' 分享到QQ * |'menuItem:share:message' 分享到短信 * |'menuItem:share:email' 分享到Email * |'menuItem:openWithBrowser' 用浏览器打开操作 * |'menuItem:forward' 转发 * |'menuItem:refresh' 刷新操作 * |'menuItem:tipoff'] 举报 * v.shareInfo.url * v.shareInfo.imageThumbUrl * v.shareInfo.shareDescription * v.shareInfo.touchShow 是否手动出发 * v.shareInfo.shareTitle */ da.initShareOptMenu = function (v) { if (this.canTrans()) { djInternal.callHandler('initShareOptMenu', {'optList': v.optList, 'shareInfo': v.shareInfo}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 信息流的操作 * type 1 赞 2 收藏 * action 1 添加操作 2 取消操作 * @param v */ da.feedAction = function (v) { if (this.canTrans()) { djInternal.callHandler('feedAction', {'type': v.type, 'action': v.action, 'objID': v.objID }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 添加评论 * feedID feed的ID * commentID * @param v */ da.addComment = function (v) { if (this.canTrans()) { djInternal.callHandler("addComment", {'feedID': v.feedID, 'commentID': v.commentID}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * fileID 文件ID * @param v * @param type 2 声音 * @return 文件路径 */ da.getFile = function (v) { if (this.canTrans()) { djInternal.callHandler("getFile", {'fileID': v.fileID, 'type': v.type}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 请求信息流 * * @param v.tagID 应用ID * @param v.page 页码 * @param v.count 单页条数 * @param v.maxTime 时间 * @param v.style 回调参数 * @param v.isCache */ da.requestFeed = function (v) { if (this.canTrans()) { djInternal.callHandler('requestFeed', { 'tagID': v.tagID, 'page': v.page, 'count': v.count, 'maxTime': v.maxTime, 'style': v.style, 'isCache': v.isCache }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转到对应话题的信息流列表 * @param v */ da.showBlog = function (v) { if (this.canTrans()) { djInternal.callHandler('showBlog', {'feedID': v.feedID, 'blogID': v.blogID}); } }; /** * 获取app的主题颜色 * @param v */ da.getThemeColor = function (v) { if (this.canTrans()) { djInternal.callHandler('getThemeColor', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 发起IM聊天 * @param v * v.conversationType 回话类型 目前只支持"PRIVATE" 私聊 "CUSTOM"发起客服聊天 * v.targetID 回话的目标ID,目前只支持personID * v.targetName 回话的名字,目前只支持personName * v.companyID 当前社区ID * 需要在发起聊天同时自动发一条消息,请完善下述参数 * v.messageTitle * v.messageDigest * v.messageImageURL * v.messageUrl * v.messageExtra * v.textMessageContent * 规则1:messageTitle messageUrl 填写的话,会发送一条富文本消息 * 并且可以填写messageDigest messageImageURL messageExtra * messageExtra参数暂时没有使用,将来可能用于扩展 * 规则2:textMessageContent 填写的话 会发送一条纯文本消息 * 规则3:messageTitle messageUrl textMessageContent都不填写时将不会发送任何消息 * 规则4:调用客服时暂时不要使用messageTitle messageUrl 客服现在不支持; */ da.startIMConversation = function (v) { if (this.canTrans()) { djInternal.callHandler("startIMConversation", { 'conversationType': v.conversationType, 'targetID': v.targetID, 'targetName': v.targetName, 'companyID': v.companyID, 'messageTitle': v.messageTitle, 'messageDigest': v.messageDigest, 'messageImageURL': v.messageImageURL, 'messageUrl': v.messageUrl, 'messageExtra': v.messageExtra, 'textMessageContent': v.textMessageContent }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 主题是否支持发送 * @param v.tagID 主题ID * @return (res:{isSupport:[true|false]} */ da.getTopic = function (v) { if (this.canTrans()) { djInternal.callHandler("getTopic", {'tagID': v.tagID}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * * @param v */ da.getValueByThird = function (v) { if (this.canTrans()) { djInternal.callHandler("getValueByThird", {'key': v.key}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 显示错误信息 * @param v.file 文件名 * @param v.code 错误码 * @param v.error 错误描述 */ da.showPortalError = function (v) { if (this.canTrans()) { djInternal.callHandler("showPortalError", {'file': v.file, 'code': v.code, 'error': v.error}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 通用portal页主题列表通用接口 * @param v.tagID 主题ID * @param v.page 页数 * @param v.count 单页条数 */ da.requestPortalList = function (v) { if (this.canTrans()) { djInternal.callHandler("requestPortalList", { 'tagID': v.tagID, 'page': v.page, 'count': v.count, 'isCache': v.isCache, 'object': v.object }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail(callback.res); break; default: v.fail(callback.res); break; } } ); } }; /** * 打开portal单个详情页面通用接口 * {worksShowID: worksShow.worksShowID} * @param v.object.worksShowID */ da.showPortalDetail = function (v) { if (this.canTrans()) { djInternal.callHandler("showPortalDetail", {'tagID': v.tagID, 'object': v.object}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail(callback.res); break; default: v.fail(callback.res); break; } } ); } }; /** * 上传文件 * ios 支持 * android不支持 * @param v.files 本地图片路径 */ da.uploadFileByApp = function (v) { if (this.canTrans()) { djInternal.callHandler('uploadFileByApp', {'files': v.files, 'isShowProgress': v.isShowProgress}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); } }; // ----------------鼎捷项目新增js方法-----------------// /** * 我发的消息 * 默认进入我发的消息页面, * 当参数getMySelfSendFeed为字符类型1的时候进入我发的消息页面,其他参数时进入带头像的信息流页面 */ da.getMySelfSendFeed = function () { if (this.canTrans()) { djInternal.callHandler('getMySelfSendFeed', {'getMySelfSendFeed': v.getMySelfSendFeed}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 我的收藏 */ da.getMySelfCollections = function () { if (this.canTrans()) { djInternal.callHandler('getMySelfCollections'); } }; /** * 发送队列 */ da.findSendFeedQuque = function () { if (this.canTrans()) { djInternal.callHandler('findSendFeedQuque'); } }; /** * 邀请 */ da.sendInvitation = function () { if (this.canTrans()) { djInternal.callHandler('sendInvitation'); } }; /** * 系统设置 */ da.systemSetting = function () { if (this.canTrans()) { djInternal.callHandler('systemSetting'); } }; /** * 通知 */ da.systemNtive = function () { if (this.canTrans()) { djInternal.callHandler('systemNtive'); } }; /** * 是否在大陆 * @return success.res.isChina:1、在大陆 * @return success.res.lon:经度 * @return success.res.lat:纬度 */ da.inChina = function (v) { if (this.canTrans()) { djInternal.callHandler('inChina', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 当前语言 * @return success.res:当前语言别 */ da.currentLanguage = function (v) { if (this.canTrans()) { djInternal.callHandler('currentLanguage', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 录音接口 * @param v */ da.record = function (v) { if (this.canTrans()) { djInternal.callHandler('record', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 获取预置内容接口中数据 * @param v */ da.getTopicPresetInfo = function (v) { if (this.canTrans()) { djInternal.callHandler('getTopicPresetInfo', { 'url': v.url, 'topicPresetID': v.topicPresetID, 'portalRowID': v.portalRowID }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 上传名片图片到名片王服务器,获取名片的json数据 * @param v */ da.getCardInfo = function (v) { if (this.canTrans()) { djInternal.callHandler('getCardInfo', {'type': v.type}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转集成列表详情页 * @param v */ da.showListMessageDetail = function (v) { if (this.canTrans()) { djInternal.callHandler('showListMessageDetail', {'url': v.url}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 获取系统最新一条消息 * @param v */ da.getLatestCommunityNotification = function (v) { if (this.canTrans()) { djInternal.callHandler('getLatestCommunityNotification', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /*** 下面所有未读消息都取自手机端的SQLITE数据库,这个消息是定时从手机端取自服务端取后就会把服务端库的置为已读,但是手机数据库仍是未读 *****/ /** * 获取未读消息数 * @param v */ da.getNotificationCountBySourceType = function (v) { if (this.canTrans()) { djInternal.callHandler('getNotificationCountBySourceType', {'sourceType': v.sourceType}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 取最新消息 * @param v */ da.getLatestNotificationBySourceType = function (v) { if (this.canTrans()) { djInternal.callHandler('getLatestNotificationBySourceType', {'sourceType': v.sourceType}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 获取所有消息 * @param v */ da.getAllNotificationBySourceType = function (v) { if (this.canTrans()) { djInternal.callHandler('getAllNotificationBySourceType', {'sourceType': v.sourceType}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 所有分类消息设置成已读 * @param v */ da.setNotificationReadBySourceType = function (v) { if (this.canTrans()) { djInternal.callHandler('setNotificationReadBySourceType', {'sourceType': v.sourceType}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 删除某一条已查看的消息 * @param v */ da.deleteNotification = function (v) { if (this.canTrans()) { djInternal.callHandler('deleteNotification', {'sourceType': v.sourceType, 'notificationID': v.notificationID}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 获取设备唯一ID * @return success.res:当前设备唯一ID */ da.getDeviceUniqueID = function (v) { if (this.canTrans()) { djInternal.callHandler('getDeviceUniqueID', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 选择人员 * @param v.includeSelf:是否包括自己 */ da.choosePersons = function (v) { if (this.canTrans()) { djInternal.callHandler("choosePersons", { 'person_ids': v.person_ids, 'isMultiple': v.isMultiple, 'includeSelf': v.includeSelf }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 回首页 * @param v */ da.goBackToMain = function (v) { if (this.canTrans()) djInternal.callHandler('goBackToMain'); }; /** * 分享文档 * @param v */ da.shareDocument = function (v) { if (this.canTrans()) { djInternal.callHandler("shareDocument", { 'fileID': v.fileID, 'sendNotice': v.sendNotice, 'includeSelf': v.includeSelf //true指包含自己(可选择分享给自己),false不包含自己,默认为false }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); } }; /** * 隐藏或显示左上角回退按钮 * @param v */ da.hideOrShowBackButton = function (v) { if (this.canTrans()) { djInternal.callHandler("hideOrShowBackButton", { 'show': v.show //true or false }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); } }; /** * 保存状态变量 * @param v * pageIndex为在第几个页面可以取值(字符类型) */ da.saveCustomizedData = function (v) { if (this.canTrans()) djInternal.callHandler('saveCustomizedData', { 'customizedKey': v.customizedKey, 'customizedValue': v.customizedValue, 'saveToPage':v.saveToPage }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * 获取保存的状态变量 * @param v */ da.getCustomizedData = function (v) { if (this.canTrans()) djInternal.callHandler('getCustomizedData', { 'customizedKey': v.customizedKey, 'getDataFromPage': v.getDataFromPage }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * 跳转到特定页面(da.createwindow打开方式) * @param v pageIndex:为0到count-1的数字,超过或者其他将返回错误,成功就会跳转 * refreshPage:这个参数代表是否刷新,默认不刷新,设置为true时则进入界面时会刷新 */ da.goBackToSpecifiedPage = function (v) { if (this.canTrans()) djInternal.callHandler('goBackToSpecifiedPage', { 'pageIndex': v.pageIndex, 'refreshPage': v.refreshPage }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * 获取当前控制器的栈的数量,默认为0,代表当前为根控制器(da.createwindow打开方式) */ da.getSpecifiedPageCount = function (v) { if (this.canTrans()) djInternal.callHandler('getSpecifiedPageCount', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * *打开全部消息接口//无参数 *无返回 */ da.openAllFeedPage = function(v) { if (this.canTrans()) djInternal.callHandler('openAllFeedPage'); }; /** * *切换社区接口//无参数 *无返回 */ da.switchCommunity = function(v) { if (this.canTrans()) djInternal.callHandler('switchCommunity'); }; /** *切换横竖屏接口// 有参数 *参数说明: 传入switchScreen为key的 value是 0或者1 (数字必须是字符串形式)字段 1代表竖屏 0 代表横屏 * 无返回 */ da.switchScreen = function(v){ if (this.canTrans()){ djInternal.callHandler('switchScreen' , { 'switchScreen': v.switchScreen } , function(callback){ switch (callback.code){ case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }) } }; /** *跳转搜索页面// 有参数 *参数说明: isInput为跳转时是否弹出键盘的参数,为布尔类型的true或false * 无返回 */ da.goToGlobalSearch = function(v){ if (this.canTrans()){ djInternal.callHandler('goToGlobalSearch' , { 'isInput': v.isInput } , function(callback){ switch (callback.code){ case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }) } }; /** * 开车啦 开始行程接口 * @param v isStart为字符类型的"0"或"1",0代表开始行程,1代表恢复行程 * distinceInterval:每隔多长距离去保存一次数据,单位是米,字符类型 */ da.startDrive = function (v) { if (this.canTrans()) djInternal.callHandler('startDrive', { 'isStart': v.isStart, 'distanceInterval': v.distanceInterval }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * 开车啦 结束行程 * */ da.endDrive = function (v) { if (this.canTrans()) djInternal.callHandler('endDrive', { }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * 开车啦 获取行程信息 * */ da.getRouteData = function (v) { if (this.canTrans()) djInternal.callHandler('getRouteData', { }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }); }; /** * ios 获取手机本地日历信息 */ da.getCalendarList = function(v){ if (this.canTrans()){ djInternal.callHandler('getCalendarList', { 'startDate':v.startDate, 'endDate':v.endDate }, function(callback){ switch (callback.code){ case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }) } }; /** * 参数type(必须,目前支持type=1时,为日历,type=2定位弹框,type=3位提醒事项弹框(暂时未使用,预留)) 正确提示:code:success 错误提示:code:fail res:包括domain和code code=1000。type未传或者传的值不包括上面的类型 Code 1001 已开启,不需要弹框 Code 1002 用户选择了取消按钮 * @param v */ da.systemPermissionsAlert = function (v) { if (this.canTrans()){ djInternal.callHandler('systemPermissionsAlert',{ 'type':v.type }, function (callback) { switch (callback.code){ case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } }) } }; /** * 开车啦 清除行程信息 * */ da.cleanDriveData = function (v) { if (this.canTrans()) { djInternal.callHandler('cleanDriveData', { }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 跳转手机设置开启定位权限页面 * */ da.openLocationSet = function (v) { if (this.canTrans()) { djInternal.callHandler('openLocationSet ', {}, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 退出登录 * @param v.needAlert:0 不弹窗提示,1 弹窗提示 * @param vstyleType:0:不强制退出,1:强制退出 */ da.logOut = function (v) { if (this.canTrans()) { djInternal.callHandler('logOut', { 'needAlert':v.needAlert,'styleType':v.styleType }, function (callback) { switch (callback.code) { case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } }; /** * 调到手机高德/谷歌/苹果地图导航 * targetName:目的地名称 * targetLatitude:目的地纬度 * targetLongitute:目的地经度 * directionsmode:导航方式; 目前支持driving:驾车;walking,步行。 默认是驾车。 */ da.openThreeMapNav = function(v){ if (this.canTrans()){ djInternal.callHandler('openThreeMapNav',{ 'targetName':v.targetName, 'targetLatitude':v.targetLatitude, 'targetLongitute':v.targetLongitute, 'directionsmode':v.directionsmode, }, function(callback){ switch (callback.code){ case 'success': v.success(callback.res); break; case 'fail': v.fail && v.fail(callback.res); break; default: v.fail && v.fail(callback.res); break; } } ); } };