<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • H5之外部瀏覽器喚起微信分享

    2020-2-23    seo達人

    最近在做一個手機站,要求點擊分享可以直接打開微信分享出去。而不是jiathis,share分享這種的點擊出來二維碼。在網上看了很多,都說APP能喚起微信,手機網頁實現不了。也找了很多都不能直接喚起微信。

    總結出來一個可以直接喚起微信的。適應手機qq瀏覽器和uc瀏覽器。

    下面上代碼,把這些直接放到要轉發的頁面里就可以了:

    html部分:

    
    
    1. <script src="mshare.js"></script>//引進mshare.js
    2. <button data-mshare="0">點擊彈出原生分享面板</button>
    3. <button data-mshare="1">點擊觸發朋友圈分享</button>
    4. <button data-mshare="2">點擊觸發發送給微信朋友</button>

    js部分:

    
    
    1. <script>
    2. var mshare = new mShare({
    3. title: 'Lorem ipsum dolor sit.',
    4. url: 'http://m.ly.com',
    5. desc: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quaerat inventore minima voluptates.',
    6. img: 'http://placehold.it/150x150'
    7. });
    8. $('button').click(function () {
    9. // 1 ==> 朋友圈 2 ==> 朋友 0 ==> 直接彈出原生
    10. mshare.init(+$(this).data('mshare'));
    11. });
    12. </script>

    下面是mshare.js的代碼分享,把這些代碼新建一個js文件放進去,然后在頁面中引進就ok了。

    
    
    1. /**
    2. * 此插件主要作用是在UC和QQ兩個主流瀏覽器
    3. * 上面觸發微信分享到朋友圈或發送給朋友的功能
    4. */
    5. 'use strict';
    6. var UA = navigator.appVersion;
    7. /**
    8. * 是否是 UC 瀏覽器
    9. */
    10. var uc = UA.split('UCBrowser/').length > 1 ? 1 : 0;
    11. /**
    12. * 判斷 qq 瀏覽器
    13. * 然而qq瀏覽器分高低版本
    14. * 2 代表高版本
    15. * 1 代表低版本
    16. */
    17. var qq = UA.split('MQQBrowser/').length > 1 ? 2 : 0;
    18. /**
    19. * 是否是微信
    20. */
    21. var wx = /micromessenger/i.test(UA);
    22. /**
    23. * 瀏覽器版本
    24. */
    25. var qqVs = qq ? parseFloat(UA.split('MQQBrowser/')[1]) : 0;
    26. var ucVs = uc ? parseFloat(UA.split('UCBrowser/')[1]) : 0;
    27. /**
    28. * 獲取操作系統信息 iPhone(1) Android(2)
    29. */
    30. var os = (function () {
    31. var ua = navigator.userAgent;
    32. if (/iphone|ipod/i.test(ua)) {
    33. return 1;
    34. } else if (/android/i.test(ua)) {
    35. return 2;
    36. } else {
    37. return 0;
    38. }
    39. }());
    40. /**
    41. * qq瀏覽器下面 是否加載好了相應的api文件
    42. */
    43. var qqBridgeLoaded = false;
    44. // 進一步細化版本和平臺判斷
    45. if ((qq && qqVs < 5.4 && os == 1) || (qq && qqVs < 5.3 && os == 1)) {
    46. qq = 0;
    47. } else {
    48. if (qq && qqVs < 5.4 && os == 2) {
    49. qq = 1;
    50. } else {
    51. if (uc && ((ucVs < 10.2 && os == 1) || (ucVs < 9.7 && os == 2))) {
    52. uc = 0;
    53. }
    54. }
    55. }
    56. /**
    57. * qq瀏覽器下面 根據不同版本 加載對應的bridge
    58. * @method loadqqApi
    59. * @param {Function} cb 回調函數
    60. */
    61. function loadqqApi(cb) {
    62. // qq == 0
    63. if (!qq) {
    64. return cb && cb();
    65. }
    66. var script = document.createElement('script');
    67. script.src = (+qq === 1) ? '//3gimg.qq.com/html5/js/qb.js' : '//jsapi.qq.com/get?api=app.share';
    68. /**
    69. * 需要等加載過 qq 的 bridge 腳本之后
    70. * 再去初始化分享組件
    71. */
    72. script.onload = function () {
    73. cb && cb();
    74. };
    75. document.body.appendChild(script);
    76. }
    77. /**
    78. * UC瀏覽器分享
    79. * @method ucShare
    80. */
    81. function ucShare(config) {
    82. // ['title', 'content', 'url', 'platform', 'disablePlatform', 'source', 'htmlID']
    83. // 關于platform
    84. // ios: kWeixin || kWeixinFriend;
    85. // android: WechatFriends || WechatTimeline
    86. // uc 分享會直接使用截圖
    87. var platform = '';
    88. var shareInfo = null;
    89. // 指定了分享類型
    90. if (config.type) {
    91. if (os == 2) {
    92. platform = config.type == 1 ? 'WechatTimeline' : 'WechatFriends';
    93. } else if (os == 1) {
    94. platform = config.type == 1 ? 'kWeixinFriend' : 'kWeixin';
    95. }
    96. }
    97. shareInfo = [config.title, config.desc, config.url, platform, '', '', ''];
    98. // android
    99. if (window.ucweb) {
    100. ucweb.startRequest && ucweb.startRequest('shell.page_share', shareInfo);
    101. return;
    102. }
    103. if (window.ucbrowser) {
    104. ucbrowser.web_share && ucbrowser.web_share.apply(null, shareInfo);
    105. return;
    106. }
    107. }
    108. /**
    109. * qq 瀏覽器分享函數
    110. * @method qqShare
    111. */
    112. function qqShare(config) {
    113. var type = config.type;
    114. //微信好友 1, 微信朋友圈 8
    115. type = type ? ((type == 1) ? 8 : 1) : '';
    116. var share = function () {
    117. var shareInfo = {
    118. 'url': config.url,
    119. 'title': config.title,
    120. 'description': config.desc,
    121. 'img_url': config.img,
    122. 'img_title': config.title,
    123. 'to_app': type,
    124. 'cus_txt': ''
    125. };
    126. if (window.browser) {
    127. browser.app && browser.app.share(shareInfo);
    128. } else if (window.qb) {
    129. qb.share && qb.share(shareInfo);
    130. }
    131. };
    132. if (qqBridgeLoaded) {
    133. share();
    134. } else {
    135. loadqqApi(share);
    136. }
    137. }
    138. /**
    139. * 對外暴露的接口函數
    140. * @method mShare
    141. * @param {Object} config 配置對象
    142. */
    143. function mShare(config) {
    144. this.config = config;
    145. this.init = function (type) {
    146. if (typeof type != 'undefined') this.config.type = type;
    147. try {
    148. if (uc) {
    149. ucShare(this.config);
    150. } else if (qq && !wx) {
    151. qqShare(this.config);
    152. }
    153. } catch (e) {}
    154. }
    155. }
    156. // 預加載 qq bridge
    157. loadqqApi(function () {
    158. qqBridgeLoaded = true;
    159. });
    160. if (typeof module === 'object' && module.exports) {
    161. module.exports = mShare;
    162. } else {
    163. window.mShare = mShare;
    164. }

    好了,這樣就可以直接喚起微信進行分享啦

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 亚洲AV永久无码精品网站在线观看| 色欲国产麻豆一精品一AV一免费| 中文无码久久精品| 中文字幕亚洲精品资源网| 日韩欧精品无码视频无删节| 久久人人爽人人精品视频| 久久97精品久久久久久久不卡| 欧美精品久久久久久久自慰| 日韩精品视频在线观看免费| 国产精品激情综合久久| 久久精品一区二区国产| 99国产精品无码| 精品国产一区二区三区久久久狼| 亚洲精品视频在线看| 欧美日韩精品久久久久| 久久精品亚洲精品国产欧美| 国产三级国产精品国产普男人| 91精品国产高清久久久久久91| 国产精品久久波多野结衣| 久久精品国产亚洲AV高清热 | 久久综合九色综合精品| 国产办公室秘书无码精品99| 欧美成人精品高清在线观看| 亚洲AV无码国产精品色午友在线| 亚洲精品成人久久久| 人妻VA精品VA欧美VA| 人妻一区二区三区无码精品一区| 韩国三级中文字幕hd久久精品| 国产精品成人观看视频| 亚洲精品在线观看视频| 老司机99精品99| 97精品人妻一区二区三区香蕉| 一本久久a久久精品综合夜夜| 欧美亚洲精品在线| 91精品国产福利在线观看麻豆| MM1313亚洲精品无码| 99久久综合国产精品二区| 国产精品美女免费视频观看| 精品人妻V?出轨中文字幕| 乱人伦人妻精品一区二区| 亚洲第一永久AV网站久久精品男人的天堂AV|