appFn.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. import { copyText } from '@/utils'
  2. /**
  3. * 客户端拨打电话
  4. * @param phone
  5. */
  6. export function appCallPhone(phone) {
  7. try {
  8. JyObj.callPhone(phone)
  9. }
  10. catch (e) {
  11. console.warn('error: app call phone', e)
  12. }
  13. }
  14. export function appCallCopyText(text) {
  15. try {
  16. JyObj.wirteRight(text)
  17. }
  18. catch (e) {
  19. console.warn('error: app call copy text', e)
  20. copyText(text)
  21. }
  22. }
  23. /**
  24. * 客户端打开新窗口
  25. * @param link 目标链接
  26. * @param title 窗口标题
  27. */
  28. export function appCallOpenWindow(link, title = '剑鱼标讯') {
  29. try {
  30. JyObj.openExternalLink(link, title)
  31. }
  32. catch (e) {
  33. console.warn('error: app call openExternalLink', e)
  34. }
  35. }
  36. /**
  37. * 切换底部导航
  38. * @param name 需要切换到的TabName, 对应关系 search:搜索 subscribe:订阅 box:百宝箱 me:我的 message:消息
  39. */
  40. export function appCallChangeTab(name) {
  41. try {
  42. JyObj.skipAppointTab(name)
  43. }
  44. catch (e) {
  45. console.warn('error: app call skipAppointTab', e)
  46. }
  47. }
  48. /**
  49. * 刷新对应导航页面
  50. * @param name 需要切换到的TabName, 对应关系 search:搜索 subscribe:订阅 box:百宝箱 me:我的 message:消息
  51. */
  52. export function appCallReloadTab(name, status = 1) {
  53. try {
  54. JyObj.refreshAppointTab(name, status)
  55. }
  56. catch (e) {
  57. console.warn('error: app call refreshAppointTab', e)
  58. }
  59. }
  60. /**
  61. * 返回对应导航页面
  62. * @param name 需要切换返回到的TabName
  63. * 3.0.5以及以前版本:H 首页, '' 当前 webview 顶级
  64. * 3.0.6以及以后版本:H 首页, '' 无操作
  65. */
  66. export function appCallBackTab(name) {
  67. try {
  68. JyObj.backUrl(name)
  69. }
  70. catch (e) {
  71. console.warn('error: app call backUrl', e)
  72. }
  73. }
  74. /**
  75. * 隐藏显示底部菜单栏,3.0.6版本移除
  76. * @param type 0:隐藏;1:显示
  77. */
  78. export function appCallHideTab(type) {
  79. try {
  80. JyObj.hiddenBottom(type)
  81. }
  82. catch (e) {
  83. console.warn('error: app call hiddenBottom', e)
  84. }
  85. }
  86. /**
  87. * app获取用户token方法
  88. */
  89. export function appCallGetToken() {
  90. let result
  91. try {
  92. result = JyObj.getUserToken()
  93. }
  94. catch (e) {
  95. console.warn('error: app call getUserToken', e)
  96. }
  97. return result
  98. }
  99. /**
  100. * 保存图片到本地相册
  101. */
  102. export function savePic(
  103. imgbase64,
  104. tip = '剑鱼标讯需要您的存储权限、电话权限,将用于帮助您下载、保存图片到本地,将内容成功分享到社交平台。'
  105. ) {
  106. try {
  107. window.__compatibleAppFn(JyObj.savePic, imgbase64, tip)
  108. }
  109. catch (e) {
  110. console.warn('error: app call savePic', e)
  111. }
  112. }
  113. // 查看开关状态 是否接受消息
  114. export function checkNoticePermission() {
  115. let status
  116. try {
  117. status = JyObj.IosCall('checkNoticePermission')
  118. }
  119. catch (e) {
  120. console.warn('error: app call checkNoticePermission', e)
  121. }
  122. return status
  123. }
  124. // 打开接受消息开关
  125. export function openSystemNotification() {
  126. try {
  127. JyObj.openSystemNotification()
  128. }
  129. catch (e) {
  130. console.warn('error: app call openSystemNotification', e)
  131. }
  132. }
  133. /**
  134. * 客户端版本号获取
  135. */
  136. export function getAppVersion() {
  137. let version = ''
  138. try {
  139. version = JyObj.getVersion()
  140. }
  141. catch (e) {
  142. console.warn('error: get app version failed', e)
  143. }
  144. return version || ''
  145. }
  146. /**
  147. * APP独有 ios附件下载 、Android客户端暂无!
  148. * doc 、docx、excel 、xls 、 xlsxppt 、 pptx、 pdf、 txt、png 、PNG、jpg 、JPG 暂定这些为常见类型~支持在线预览+下载+转存
  149. * 其他类型仅支持下载+转存
  150. * @param filename 文件名称不带后缀
  151. * @param filetype 文件类型:doc word excel 等等
  152. * @param fileurl 文件链接
  153. * @param filesize 文件大小
  154. */
  155. export function appDownLoadFile(filename, filetype, fileurl, filesize) {
  156. try {
  157. JyObj.downLoadFile(filename, filetype, fileurl, filesize)
  158. }
  159. catch (e) {
  160. console.warn('error: app ios download file failed', e)
  161. }
  162. }
  163. /**
  164. * 隐藏小红点,3.0.6版本移除
  165. * @param {string} menu [搜索:search 订阅:subscribe 百宝箱:box 我的:me 消息:message]
  166. */
  167. export function appHideRedSpotOnMenu(menu) {
  168. if (menu === 'me') {
  169. menu = 'my'
  170. }
  171. try {
  172. JyObj.hideRedSpotOnMenu(menu)
  173. }
  174. catch (e) {
  175. console.warn('error: app hideRedSpotOnMenu failed', e)
  176. }
  177. }
  178. /**
  179. * 底部栏消息角标数量,3.0.6版本移除
  180. * @param {string} num
  181. */
  182. export function appSendMsgCount(num) {
  183. try {
  184. JyObj.sendMsgCount(num)
  185. }
  186. catch (e) {
  187. console.warn('error: app sendMsgCount failed', e)
  188. }
  189. }
  190. /**
  191. * 直接打开微信里的扫码功能,3.0.6版本新增
  192. */
  193. export function appOpenWeChartScan() {
  194. try {
  195. JyObj.openWeChartScan()
  196. }
  197. catch (e) {
  198. console.warn('error: app openWeChartScan failed', e)
  199. }
  200. }
  201. /**
  202. * 用来清除webview浏览历史记录,3.0.6版本新增
  203. * 此方法在ios的单页面程序中使用会清除当前页面的历史,造成前进后无法后退。
  204. * 所以ios谨慎使用此方法。可使用以下方案替代:(sideslipClose+不提供返回按钮)
  205. */
  206. export function appClearHistory() {
  207. try {
  208. JyObj.clearHistory()
  209. }
  210. catch (e) {
  211. console.warn('error: app clearHistory failed', e)
  212. }
  213. }
  214. /**
  215. * ios开启侧滑(ios专用,安卓调用无效),3.0.6版本新增
  216. */
  217. export function appSideslipOpen() {
  218. try {
  219. JyObj.sideslipOpen()
  220. }
  221. catch (e) {
  222. console.warn('error: app sideslipOpen failed', e)
  223. }
  224. }
  225. /**
  226. * ios关闭侧滑(ios专用,安卓调用无效),3.0.6版本新增
  227. */
  228. export function appSideslipClose() {
  229. try {
  230. JyObj.sideslipClose()
  231. }
  232. catch (e) {
  233. console.warn('error: app sideslipClose failed', e)
  234. }
  235. }
  236. /**
  237. * app分享
  238. * shareType: 1:微信 2:QQ 3:朋友圈
  239. * title: 分享标题
  240. * content: 分享内容
  241. * link: 分享链接
  242. * authTip: 授权提示文案
  243. */
  244. export function appShare(
  245. shareType,
  246. title,
  247. content,
  248. link,
  249. authTip = '剑鱼标讯需申请存储权限、电话权限,以便您能顺利参与分享有礼活动,将招标信息、文库内容成功分享到社交平台。'
  250. ) {
  251. try {
  252. if (
  253. window.__checkAppVersionCanRunTips
  254. && window.__checkAppVersionCanRunTips()
  255. ) {
  256. JyObj.share(shareType, title, content, link, authTip)
  257. }
  258. else {
  259. JyObj.share(shareType, title, content, link)
  260. }
  261. }
  262. catch (e) {
  263. console.warn('error: app call share', e)
  264. }
  265. }
  266. // 一键绑定、登录
  267. export function appGetPhoneBind() {
  268. try {
  269. JyObj.getPhoneBind()
  270. }
  271. catch (e) {
  272. console.warn('error: app call getPhoneBind', e)
  273. }
  274. }
  275. // 获取极光推送id
  276. export function appGetPushRid() {
  277. try {
  278. JyObj.getPushRid()
  279. }
  280. catch (e) {
  281. console.warn('error: app call getPushRid', e)
  282. }
  283. }
  284. // 获取推送id
  285. export function appGetOtherPushId() {
  286. try {
  287. JyObj.getOtherPushId()
  288. }
  289. catch (e) {
  290. console.warn('error: app call getOtherPushId', e)
  291. }
  292. }
  293. // 获取手机型号
  294. export function appGetPhoneType() {
  295. try {
  296. JyObj.getPhoneType()
  297. }
  298. catch (e) {
  299. console.warn('error: app call getPhoneType', e)
  300. }
  301. }
  302. // 渠道
  303. export function appGetChannel() {
  304. try {
  305. JyObj.getChannel()
  306. }
  307. catch (e) {
  308. console.warn('error: app call getChannel', e)
  309. }
  310. }
  311. // 设备id
  312. export function appGetDeviceId() {
  313. try {
  314. JyObj.getDeviceId()
  315. }
  316. catch (e) {
  317. console.warn('error: app call getDeviceId', e)
  318. }
  319. }