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

    2020-3-8    seo達(dá)人

    最近在做一個(gè)手機(jī)站,要求點(diǎn)擊分享可以直接打開微信分享出去。而不是jiathis,share分享這種的點(diǎn)擊出來二維碼。在網(wǎng)上看了很多,都說APP能喚起微信,手機(jī)網(wǎng)頁實(shí)現(xiàn)不了。也找了很多都不能直接喚起微信。

    總結(jié)出來一個(gè)可以直接喚起微信的。適應(yīng)手機(jī)qq瀏覽器和uc瀏覽器。

    下面上代碼,把這些直接放到要轉(zhuǎn)發(fā)的頁面里就可以了:

    html部分:

    
    
    1. <script src="mshare.js"></script>//引進(jìn)mshare.js
    2. <button data-mshare="0">點(diǎn)擊彈出原生分享面板</button>
    3. <button data-mshare="1">點(diǎn)擊觸發(fā)朋友圈分享</button>
    4. <button data-mshare="2">點(diǎn)擊觸發(fā)發(fā)送給微信朋友</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的代碼分享,把這些代碼新建一個(gè)js文件放進(jìn)去,然后在頁面中引進(jìn)就ok了。

    
    
    1. /**
    2. * 此插件主要作用是在UC和QQ兩個(gè)主流瀏覽器
    3. * 上面觸發(fā)微信分享到朋友圈或發(fā)送給朋友的功能
    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. * 獲取操作系統(tǒng)信息 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瀏覽器下面 是否加載好了相應(yīng)的api文件
    42. */
    43. var qqBridgeLoaded = false;
    44. // 進(jìn)一步細(xì)化版本和平臺(tái)判斷
    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瀏覽器下面 根據(jù)不同版本 加載對應(yīng)的bridge
    58. * @method loadqqApi
    59. * @param {Function} cb 回調(diào)函數(shù)
    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. // 關(guān)于platform
    84. // ios: kWeixin || kWeixinFriend;
    85. // android: WechatFriends || WechatTimeline
    86. // uc 分享會(huì)直接使用截圖
    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 瀏覽器分享函數(shù)
    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. * 對外暴露的接口函數(shù)
    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. // 預(yù)加載 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. }

    好了,這樣就可以直接喚起微信進(jìn)行分享啦

    日歷

    鏈接

    個(gè)人資料

    存檔

    主站蜘蛛池模板: 亚洲精品美女久久久久99| 国产精品久久久久天天影视| 在线精品自拍无码| 亚洲AV无码成人精品区狼人影院 | 国产高清国内精品福利99久久| 日韩人妻无码精品一专区| 国产精品永久免费| 久久久久九九精品影院| 国产福利微拍精品一区二区| 99热亚洲色精品国产88| 99久久er这里只有精品18| 青青青青久久精品国产h久久精品五福影院1421| 国产精品视频a播放| 久久久久久夜精品精品免费啦| 香蕉依依精品视频在线播放 | 2022年国产精品久久久久| 中文字幕精品一区二区三区视频| 精品日本一区二区三区在线观看| 亚洲国产成人久久精品动漫| 凹凸69堂国产成人精品视频| 精品无码日韩一区二区三区不卡| 亚洲精品成人片在线观看精品字幕 | 91热成人精品国产免费| 国产精品成人va| 国产成人精品无码片区在线观看| 日产精品久久久久久久性色| 亚洲欧美日韩精品专区| 日韩精品一区二区三区中文字幕 | 亚洲欧美国产精品专区久久| 久久久久久亚洲精品不卡 | 国产精品1区2区| 国产大片91精品免费观看不卡| 国产精品毛片一区二区三区| 精品性影院一区二区三区内射| 欧美精品v国产精品v日韩精品| 亚洲αv在线精品糸列| 亚洲精品V欧洲精品V日韩精品| 野狼精品社区| 日韩精品久久无码中文字幕| 久久精品亚洲日本波多野结衣 | 国产精品青草久久久久福利99|