Нет описания

Setting.js 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. mui.init();
  2. //初始化单页view
  3. var viewApi = mui('#app').view({
  4. defaultPage: '#setting'
  5. });
  6. //初始化单页的区域滚动
  7. mui('.mui-scroll-wrapper').scroll();
  8. //分享操作
  9. var shares = {};
  10. mui.plusReady(function() {
  11. plus.share.getServices(function(s) {
  12. if (s && s.length > 0) {
  13. for (var i = 0; i < s.length; i++) {
  14. var t = s[i];
  15. shares[t.id] = t;
  16. }
  17. }
  18. }, function() {
  19. console.log("获取分享服务列表失败");
  20. });
  21. });
  22. setTimeout(function () {
  23. defaultImg();
  24. setTimeout(function() {
  25. initImgPreview();
  26. }, 300);
  27. },500);
  28. //分享链接点击事件
  29. document.getElementById("share").addEventListener('tap', function() {
  30. var ids = [{
  31. id: "weixin",
  32. ex: "WXSceneSession"
  33. }, {
  34. id: "weixin",
  35. ex: "WXSceneTimeline"
  36. }, {
  37. id: "sinaweibo"
  38. }, {
  39. id: "tencentweibo"
  40. }, {
  41. id: "qq"
  42. }],
  43. bts = [{
  44. title: "发送给微信好友"
  45. }, {
  46. title: "分享到微信朋友圈"
  47. }, {
  48. title: "分享到新浪微博"
  49. }, {
  50. title: "分享到腾讯微博"
  51. }, {
  52. title: "分享到QQ"
  53. }];
  54. plus.nativeUI.actionSheet({
  55. cancel: "取消",
  56. buttons: bts
  57. }, function(e) {
  58. var i = e.index;
  59. if (i > 0) {
  60. var s_id = ids[i - 1].id;
  61. var share = shares[s_id];
  62. if (share) {
  63. if (share.authenticated) {
  64. shareMessage(share, ids[i - 1].ex);
  65. } else {
  66. share.authorize(function() {
  67. shareMessage(share, ids[i - 1].ex);
  68. }, function(e) {
  69. console.log("认证授权失败:" + e.code + " - " + e.message);
  70. });
  71. }
  72. } else {
  73. mui.toast("无法获取分享服务,请检查manifest.json中分享插件参数配置,并重新打包")
  74. }
  75. }
  76. });
  77. });
  78. function shareMessage(share, ex) {
  79. var msg = {
  80. extra: {
  81. scene: ex
  82. }
  83. };
  84. msg.href = "http://www.dcloud.io/hellomui/";
  85. msg.title = "最接近原生APP体验的高性能前端框架";
  86. msg.content = "我正在体验HelloMUI,果然很流畅,基本看不出和原生App的差距";
  87. if (~share.id.indexOf('weibo')) {
  88. msg.content += ";体验地址:http://www.dcloud.io/hellomui/";
  89. }
  90. msg.thumbs = ["_www/images/logo.png"];
  91. share.send(msg, function() {
  92. console.log("分享到\"" + share.description + "\"成功! ");
  93. }, function(e) {
  94. console.log("分享到\"" + share.description + "\"失败: " + e.code + " - " + e.message);
  95. });
  96. }
  97. //去评分
  98. document.getElementById("rate").addEventListener('tap', function() {
  99. if (mui.os.ios) {
  100. location.href = 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=682211190&pageNumber=0&sortOrdering=2&type=&mt=8';
  101. } else if (mui.os.android) {
  102. plus.runtime.openURL("market://details?id=io.dcloud.HelloMUI", function(e) {
  103. plus.runtime.openURL("market://details?id=io.dcloud.HelloMUI", function(e) {
  104. mui.alert("360手机助手和应用宝,你一个都没装,暂时无法评分,感谢支持");
  105. }, "com.qihoo.appstore");
  106. }, "com.tencent.android.qqdownloader");
  107. }
  108. });
  109. //客服电话
  110. document.getElementById("tel").addEventListener('tap', function() {
  111. if(mui.os.plus){
  112. plus.device.dial("114");
  113. }else{
  114. location.href = 'tel:114';
  115. }
  116. });
  117. // //意见反馈
  118. // document.getElementById("quest").addEventListener('tap', function() {
  119. //
  120. // });
  121. //
  122. //检查更新
  123. document.getElementById("update").addEventListener('tap', function() {
  124. var server = "http://www.dcloud.io/check/update"; //获取升级描述文件服务器地址
  125. mui.getJSON(server, {
  126. "appid": plus.runtime.appid,
  127. "version": plus.runtime.version,
  128. "imei": plus.device.imei
  129. }, function(data) {
  130. if (data.status) {
  131. plus.ui.confirm(data.note, function(i) {
  132. if (0 == i) {
  133. plus.runtime.openURL(data.url);
  134. }
  135. }, data.title, ["立即更新", "取  消"]);
  136. } else {
  137. mui.toast('Hello MUI 已是最新版本~')
  138. }
  139. });
  140. });
  141. var view = viewApi.view;
  142. (function($) {
  143. //处理view的后退与webview后退
  144. var oldBack = $.back;
  145. $.back = function() {
  146. if (viewApi.canBack()) { //如果view可以后退,则执行view的后退
  147. viewApi.back();
  148. } else { //执行webview后退
  149. oldBack();
  150. }
  151. };
  152. //监听页面切换事件方案1,通过view元素监听所有页面切换事件,目前提供pageBeforeShow|pageShow|pageBeforeBack|pageBack四种事件(before事件为动画开始前触发)
  153. //第一个参数为事件名称,第二个参数为事件回调,其中e.detail.page为当前页面的html对象
  154. view.addEventListener('pageBeforeShow', function(e) {
  155. // console.log(e.detail.page.id + ' beforeShow');
  156. });
  157. view.addEventListener('pageShow', function(e) {
  158. // console.log(e.detail.page.id + ' show');
  159. });
  160. view.addEventListener('pageBeforeBack', function(e) {
  161. // console.log(e.detail.page.id + ' beforeBack');
  162. });
  163. view.addEventListener('pageBack', function(e) {
  164. // console.log(e.detail.page.id + ' back');
  165. });
  166. })(mui);
  167. //更换头像
  168. mui(".mui-table-view-cell").on("tap", "#head", function(e) {
  169. if(mui.os.plus){
  170. var a = [{
  171. title: "拍照"
  172. }, {
  173. title: "从手机相册选择"
  174. }];
  175. plus.nativeUI.actionSheet({
  176. title: "修改头像",
  177. cancel: "取消",
  178. buttons: a
  179. }, function(b) {
  180. switch (b.index) {
  181. case 0:
  182. break;
  183. case 1:
  184. getImage();
  185. break;
  186. case 2:
  187. galleryImg();
  188. break;
  189. default:
  190. break
  191. }
  192. })
  193. }
  194. });
  195. function getImage() {
  196. var c = plus.camera.getCamera();
  197. c.captureImage(function(e) {
  198. plus.io.resolveLocalFileSystemURL(e, function(entry) {
  199. var s = entry.toLocalURL() + "?version=" + new Date().getTime();
  200. console.log(s);
  201. document.getElementById("head-img").src = s;
  202. document.getElementById("head-img1").src = s;
  203. //变更大图预览的src
  204. //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现
  205. document.querySelector("#__mui-imageview__group .mui-slider-item img").src = s + "?version=" + new Date().getTime();;;
  206. }, function(e) {
  207. console.log("读取拍照文件错误:" + e.message);
  208. });
  209. }, function(s) {
  210. console.log("error" + s);
  211. }, {
  212. filename: "_doc/head.jpg"
  213. })
  214. }
  215. function galleryImg() {
  216. plus.gallery.pick(function(a) {
  217. plus.io.resolveLocalFileSystemURL(a, function(entry) {
  218. plus.io.resolveLocalFileSystemURL("_doc/", function(root) {
  219. root.getFile("head.jpg", {}, function(file) {
  220. //文件已存在
  221. file.remove(function() {
  222. console.log("file remove success");
  223. entry.copyTo(root, 'head.jpg', function(e) {
  224. var e = e.fullPath + "?version=" + new Date().getTime();
  225. document.getElementById("head-img").src = e;
  226. document.getElementById("head-img1").src = e;
  227. //变更大图预览的src
  228. //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现
  229. document.querySelector("#__mui-imageview__group .mui-slider-item img").src = e + "?version=" + new Date().getTime();;
  230. },
  231. function(e) {
  232. console.log('copy image fail:' + e.message);
  233. });
  234. }, function() {
  235. console.log("delete image fail:" + e.message);
  236. });
  237. }, function() {
  238. //文件不存在
  239. entry.copyTo(root, 'head.jpg', function(e) {
  240. var path = e.fullPath + "?version=" + new Date().getTime();
  241. document.getElementById("head-img").src = path;
  242. document.getElementById("head-img1").src = path;
  243. //变更大图预览的src
  244. //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现
  245. document.querySelector("#__mui-imageview__group .mui-slider-item img").src = path;
  246. },
  247. function(e) {
  248. console.log('copy image fail:' + e.message);
  249. });
  250. });
  251. }, function(e) {
  252. console.log("get _www folder fail");
  253. })
  254. }, function(e) {
  255. console.log("读取拍照文件错误:" + e.message);
  256. });
  257. }, function(a) {}, {
  258. filter: "image"
  259. })
  260. };
  261. function defaultImg() {
  262. if(mui.os.plus){
  263. plus.io.resolveLocalFileSystemURL("_doc/head.jpg", function(entry) {
  264. var s = entry.fullPath + "?version=" + new Date().getTime();;
  265. document.getElementById("head-img").src = s;
  266. document.getElementById("head-img1").src = s;
  267. }, function(e) {
  268. document.getElementById("head-img").src = '../img/logo.png';
  269. document.getElementById("head-img1").src = '../img/logo.png';
  270. })
  271. }else{
  272. document.getElementById("head-img").src = '../img/logo.png';
  273. document.getElementById("head-img1").src = '../img/logo.png';
  274. }
  275. }
  276. document.getElementById("head-img1").addEventListener('tap', function(e) {
  277. e.stopPropagation();
  278. });
  279. document.getElementById("welcome").addEventListener('tap', function(e) {
  280. //显示启动导航
  281. mui.openWindow({
  282. id: 'guide',
  283. url: 'guide.html',
  284. show: {
  285. aniShow: 'fade-in',
  286. duration: 300
  287. },
  288. waiting: {
  289. autoShow: false
  290. }
  291. });
  292. });
  293. function initImgPreview() {
  294. var imgs = document.querySelectorAll("img.mui-action-preview");
  295. imgs = mui.slice.call(imgs);
  296. if (imgs && imgs.length > 0) {
  297. var slider = document.createElement("div");
  298. slider.setAttribute("id", "__mui-imageview__");
  299. slider.classList.add("mui-slider");
  300. slider.classList.add("mui-fullscreen");
  301. slider.style.display = "none";
  302. slider.addEventListener("tap", function() {
  303. slider.style.display = "none";
  304. });
  305. slider.addEventListener("touchmove", function(event) {
  306. event.preventDefault();
  307. })
  308. var slider_group = document.createElement("div");
  309. slider_group.setAttribute("id", "__mui-imageview__group");
  310. slider_group.classList.add("mui-slider-group");
  311. imgs.forEach(function(value, index, array) {
  312. //给图片添加点击事件,触发预览显示;
  313. value.addEventListener('tap', function() {
  314. slider.style.display = "block";
  315. _slider.refresh();
  316. _slider.gotoItem(index, 0);
  317. })
  318. var item = document.createElement("div");
  319. item.classList.add("mui-slider-item");
  320. var a = document.createElement("a");
  321. var img = document.createElement("img");
  322. img.setAttribute("src", value.src);
  323. a.appendChild(img)
  324. item.appendChild(a);
  325. slider_group.appendChild(item);
  326. });
  327. slider.appendChild(slider_group);
  328. document.body.appendChild(slider);
  329. var _slider = mui(slider).slider();
  330. }
  331. }
  332. if(mui.os.stream){
  333. document.getElementById("check_update").display = "none";
  334. }