iOSBridgeInit.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. /*
  2. * UI control
  3. * version : 3.4
  4. * author : lufeng
  5. * date : 2015-7-15
  6. */
  7. ;
  8. (function(window) {
  9. /**
  10. 插件类,提供数据请求、界面加载、数据持久化、日期控件等接口,提供全局属性。
  11. @class app
  12. */
  13. window.app = window.app || {};
  14. /**
  15. 页面事件
  16. @class app.page
  17. */
  18. window.app.page= window.app.page|| {};
  19. /*========================page=======================================*/
  20. /**
  21. 页面dom结构完成后的事件,类似window.onload
  22. */
  23. app.page.onReady = function(){}
  24. /**
  25. 页面加载完成后执行的事件,类似$(function(){...})
  26. */
  27. app.page.onLoad = function(){}
  28. app.page.onError=function(msg,url,line){
  29. //这个会全局捕获js报出的错误,生产环境可以禁用掉
  30. alert("url:"+url+" msg:"+msg+" line:"+line);
  31. }
  32. /*========================page=======================================*/
  33. /*========================link=======================================*/
  34. /**
  35. 方法
  36. */
  37. window.app.link = window.app.link || {};
  38. window.app.barcode = window.app.barcode || {};
  39. window.app.phone = window.app.phone || {};
  40. /**
  41. * 获取用户登录信息
  42. */
  43. app.link.getLoginInfo = function(succesCallback, failerCallback){
  44. WebViewJavascriptBridge.callHandler('getLoginInfo',function(res) {
  45. var result = JSON.parse(res);
  46. if(result.success){
  47. succesCallback(result);
  48. }else{
  49. failerCallback(result);
  50. }
  51. });
  52. }
  53. /**
  54. * 获取当前用户所选区域
  55. */
  56. app.link.getCurrentCity = function(succesCallback, failerCallback){
  57. WebViewJavascriptBridge.callHandler('getCurrentCity',function(res) {
  58. var result = JSON.parse(res);
  59. if(result.success){
  60. succesCallback(res);
  61. }else{
  62. failerCallback(result);
  63. }
  64. });
  65. }
  66. /**
  67. * 刷新
  68. */
  69. app.refresh = function(succesCallback, failerCallback){
  70. WebViewJavascriptBridge.callHandler('refresh', function() {});
  71. }
  72. /**
  73. * 打开分享页
  74. */
  75. app.link.shareWebPage = function(title, desc, thumbUrl, targetUrl, succesCallback, failerCallback){
  76. var params = {
  77. webpage : {
  78. title : title,
  79. targetUrl : targetUrl,
  80. desc : desc,
  81. thumbUrl : thumbUrl
  82. }
  83. };
  84. WebViewJavascriptBridge.callHandler('shareWebPage',params, function(res) {
  85. var result = JSON.parse(res);
  86. if(result.success){
  87. succesCallback(res);
  88. }else{
  89. failerCallback(result);
  90. }
  91. });
  92. }
  93. /**
  94. * 定位坐标
  95. */
  96. app.getLocation = function(succesCallback, failerCallback){
  97. WebViewJavascriptBridge.callHandler('getLocation', function(res) {
  98. var result = JSON.parse(res);
  99. if(result.success){
  100. succesCallback(result);
  101. }else{
  102. failerCallback(result);
  103. }
  104. });
  105. }
  106. /**
  107. * 二维码读取
  108. */
  109. app.barcode.scan = function(succesCallback, failerCallback){
  110. WebViewJavascriptBridge.callHandler('scan', function(res) {
  111. if(res == null || res == ""){
  112. failerCallback(res);
  113. }else{
  114. succesCallback(res);
  115. }
  116. });
  117. }
  118. /**
  119. * 获取网络状态
  120. */
  121. app.link.networType = function(succesCallback, failerCallback){
  122. WebViewJavascriptBridge.callHandler('networType', function(res) {
  123. succesCallback(res);
  124. });
  125. }
  126. /**
  127. * 跳转登录页
  128. */
  129. app.link.goLogin = function(succesCallback, failerCallback, object){
  130. WebViewJavascriptBridge.callHandler('goLogin',object, function(res) {
  131. var result = JSON.parse(res);
  132. if(result.success){
  133. succesCallback(result);
  134. }else{
  135. failerCallback(res);
  136. }
  137. });
  138. }
  139. /**
  140. * 获取版本号
  141. */
  142. app.link.getVersion = function(succesCallback, failerCallback){
  143. WebViewJavascriptBridge.callHandler('getVersion', function(res) {
  144. var result = JSON.parse(res);
  145. if(result.success){
  146. succesCallback(result);
  147. }else{
  148. failerCallback(result);
  149. }
  150. });
  151. }
  152. /**
  153. * 人脸识别
  154. */
  155. app.link.getFaceCheck = function(succesCallback, failerCallback, object){
  156. WebViewJavascriptBridge.callHandler('getFaceCheck',object, function(res) {
  157. var result = JSON.parse(res);
  158. if(result.success){
  159. succesCallback(result);
  160. }else{
  161. failerCallback(result);
  162. }
  163. });
  164. }
  165. /**
  166. * 静默校验
  167. */
  168. app.link.getSilentAuth = function(succesCallback, failerCallback, object){
  169. WebViewJavascriptBridge.callHandler('getSilentAuth',object, function(res) {
  170. var result = JSON.parse(res);
  171. if(result.success){
  172. succesCallback(result);
  173. }else{
  174. failerCallback(result);
  175. }
  176. });
  177. }
  178. /**
  179. * 原生弹窗
  180. */
  181. app.alert = function(message, succesCallback, title, buttonName){
  182. var param={};
  183. param.message=message;
  184. param.title=title;
  185. param.buttonName=buttonName;
  186. WebViewJavascriptBridge.callHandler('alert',param, function(res) {
  187. succesCallback(res);
  188. });
  189. }
  190. /**
  191. * 调用百度地图
  192. */
  193. app.link.getBaiduMap = function(succesCallback, failerCallback){
  194. WebViewJavascriptBridge.callHandler('getBaiduMap', function(res) {
  195. var result = JSON.parse(res);
  196. if(result.success){
  197. succesCallback(result);
  198. }else{
  199. failerCallback(res);
  200. }
  201. });
  202. }
  203. /**
  204. * 打开拨号页
  205. */
  206. app.phone.dial = function(object){
  207. WebViewJavascriptBridge.callHandler('dial',object);
  208. }
  209. /**
  210. * 调用手机拍照/图库
  211. */
  212. app.link.getTakePictures = function(succesCallback, object){
  213. WebViewJavascriptBridge.callHandler('getTakePictures',object, function(res) {
  214. var result = JSON.parse(res);
  215. succesCallback(result);
  216. });
  217. }
  218. /**
  219. * 手势解锁
  220. */
  221. app.link.getGestureUnlock = function(succesCallback, failerCallback){
  222. WebViewJavascriptBridge.callHandler('getGestureUnlock', function(res) {
  223. var result = JSON.parse(res);
  224. if(result.success){
  225. succesCallback(res);
  226. }else{
  227. failerCallback(res);
  228. }
  229. });
  230. }
  231. /**
  232. * 获取通讯录信息
  233. */
  234. app.link.getAddressBookList = function(succesCallback, failerCallback, object){
  235. WebViewJavascriptBridge.callHandler('getAddressBookList',object, function(res) {
  236. var result = JSON.parse(res);
  237. if(result.success){
  238. succesCallback(result);
  239. }else{
  240. failerCallback(res);
  241. }
  242. });
  243. }
  244. /**
  245. * 调用地图导航
  246. */
  247. app.link.getMapNavigator = function(succesCallback, object){
  248. WebViewJavascriptBridge.callHandler('getMapNavigator',object, function(res) {
  249. var result = JSON.parse(res);
  250. if(result.success){
  251. succesCallback(result);
  252. }
  253. });
  254. }
  255. /**
  256. * 开启新页面(关闭当前页)
  257. */
  258. app.link.goOpenNewPageOrExit = function(object, succesCallback, failerCallback){
  259. WebViewJavascriptBridge.callHandler('goOpenNewPageOrExit',object, function(res) {
  260. var result = JSON.parse(res);
  261. if(result.success){
  262. succesCallback(result);
  263. }else{
  264. failerCallback(res);
  265. }
  266. });
  267. }
  268. /**
  269. * 获取终端IP
  270. */
  271. app.link.getIpAddress = function(succesCallback){
  272. WebViewJavascriptBridge.callHandler('getIpAddress', function(res) {
  273. var result = JSON.parse(res);
  274. succesCallback(result);
  275. });
  276. }
  277. /**
  278. * 文件上传
  279. */
  280. app.link.uploadFile = function(succesCallback, failerCallback, object){
  281. WebViewJavascriptBridge.callHandler('uploadFile',object, function(res) {
  282. var result = JSON.parse(res);
  283. if(result.success){
  284. succesCallback(result);
  285. }else{
  286. failerCallback(res);
  287. }
  288. });
  289. }
  290. /**
  291. * 临时操作
  292. */
  293. app.link.temporaryOperation = function(object){
  294. WebViewJavascriptBridge.callHandler('temporaryOperation',object);
  295. }
  296. /**
  297. * 获取设备信息
  298. */
  299. app.link.getDeviceInfo = function(succesCallback){
  300. WebViewJavascriptBridge.callHandler('getDeviceInfo', function(res) {
  301. var result = JSON.parse(res);
  302. succesCallback(result);
  303. });
  304. }
  305. /**
  306. * 跳转至指定原生页面
  307. */
  308. app.link.startNativePage = function(succesCallback, object){
  309. WebViewJavascriptBridge.callHandler('startNativePage',object, function(res) {
  310. var result = JSON.parse(res);
  311. succesCallback(result);
  312. });
  313. }
  314. /**
  315. * 视频录制
  316. */
  317. app.link.getMediaRecorder = function(succesCallback, object){
  318. WebViewJavascriptBridge.callHandler('getMediaRecorder',object, function(res) {
  319. var result = JSON.parse(res);
  320. succesCallback(result);
  321. });
  322. }
  323. /**
  324. * 返回
  325. */
  326. app.back = function(){
  327. WebViewJavascriptBridge.callHandler('back');
  328. }
  329. /**
  330. * 跳转其他APP
  331. */
  332. app.link.jumpOtherApp = function(succesCallback, object){
  333. WebViewJavascriptBridge.callHandler('jumpOtherApp',object, function() {});
  334. }
  335. /**
  336. * 网页支付
  337. */
  338. app.link.wapPay = function(object){
  339. WebViewJavascriptBridge.callHandler('wapPay',object);
  340. }
  341. /**
  342. * 打开支付宝认证页
  343. */
  344. app.link.doAlipayVerify = function(object){
  345. WebViewJavascriptBridge.callHandler('doAlipayVerify',object);
  346. }
  347. /**
  348. * 打开支付宝钱包页
  349. */
  350. app.link.doAlipayPayment = function(succesCallback, object){
  351. WebViewJavascriptBridge.callHandler('doAlipayPayment',object, function(res) {
  352. var result = JSON.parse(res);
  353. succesCallback(result);
  354. });
  355. }
  356. /**
  357. * 确认弹框
  358. */
  359. app.link.confirm = function(succesCallback, object){
  360. WebViewJavascriptBridge.callHandler('confirm',object, function(res) {
  361. var result = JSON.parse(res);
  362. succesCallback(result);
  363. });
  364. }
  365. /**
  366. * 输入弹框
  367. */
  368. app.link.prompt = function(succesCallback, object){
  369. WebViewJavascriptBridge.callHandler('prompt',object, function(res) {
  370. var result = JSON.parse(res);
  371. succesCallback(result);
  372. });
  373. }
  374. /**
  375. * 隐藏/弹起系统软键盘
  376. */
  377. app.link.softInput = function(object){
  378. WebViewJavascriptBridge.callHandler('softInput',object);
  379. }
  380. /**
  381. * 保存图片/视频到系统图库
  382. */
  383. app.link.saveFileToGallery = function(succesCallback, object){
  384. WebViewJavascriptBridge.callHandler('saveFileToGallery',object, function(res) {
  385. var result = JSON.parse(res);
  386. succesCallback(result);
  387. });
  388. }
  389. /**
  390. * 查看/签署pdf文件
  391. */
  392. app.link.showPDF = function(succesCallback, object){
  393. WebViewJavascriptBridge.callHandler('showPDF',object, function(res) {
  394. var result = JSON.parse(res);
  395. succesCallback(result);
  396. });
  397. }
  398. /**
  399. * 查看edc文件
  400. */
  401. app.link.showEDC = function(succesCallback, object){
  402. WebViewJavascriptBridge.callHandler('showEDC',object, function(res) {
  403. var result = JSON.parse(res);
  404. succesCallback(result);
  405. });
  406. }
  407. /**
  408. * 调用OCR插件
  409. */
  410. app.link.getOCR = function(succesCallback, object){
  411. WebViewJavascriptBridge.callHandler('getOCR',object, function(res) {
  412. var result = JSON.parse(res);
  413. succesCallback(result);
  414. });
  415. }
  416. /**
  417. * 调整屏幕亮度
  418. */
  419. app.link.adjustBrightness = function(object){
  420. WebViewJavascriptBridge.callHandler('adjustBrightness',object);
  421. }
  422. /**
  423. * 恢复系统屏幕亮度
  424. */
  425. app.link.resetBrightness = function(){
  426. WebViewJavascriptBridge.callHandler('resetBrightness');
  427. }
  428. /**
  429. * 播放或录制音频
  430. */
  431. app.link.playOrRecordAudio = function(succesCallback, object){
  432. WebViewJavascriptBridge.callHandler('playOrRecordAudio',object, function(res) {
  433. var result = JSON.parse(res);
  434. succesCallback(result);
  435. });
  436. }
  437. /**
  438. * 播放或录制视频
  439. */
  440. app.link.playOrRecordVideo = function(succesCallback, object){
  441. WebViewJavascriptBridge.callHandler('playOrRecordVideo',object, function(res) {
  442. var result = JSON.parse(res);
  443. succesCallback(result);
  444. });
  445. }
  446. /**
  447. * 公共方法
  448. 保存PDF到相册
  449. AES解密
  450. 查看ofd文件
  451. 同步证照文件
  452. 打开证照文件
  453. 打开证照文件
  454. RSA解密
  455. PDF转图片
  456. */
  457. app.link.publicMethod = function(succesCallback, failerCallback, object){
  458. WebViewJavascriptBridge.callHandler('publicMethod',object, function(res) {
  459. var result = JSON.parse(res);
  460. if(result.success){
  461. succesCallback(result);
  462. }else{
  463. failerCallback(result);
  464. }
  465. });
  466. }
  467. /*========================link=======================================*/
  468. })(window);
  469. //页面完整加载完成
  470. window.addEventListener("load", function(event) {
  471. setTimeout(function(){
  472. app.page.onLoad();
  473. }, 200);
  474. });