亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

手機(jī)瀏覽器喚起微信分享(JS)

 更新時(shí)間:2020年10月11日 15:53:40   作者:King女王  
這篇文章主要介紹了手機(jī)瀏覽器喚起微信分享功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

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

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

html部分:

<script src="mshare.js"></script>//引進(jìn)mshare.js
<button data-mshare="0">點(diǎn)擊彈出原生分享面板</button>
<button data-mshare="1">點(diǎn)擊觸發(fā)朋友圈分享</button>
<button data-mshare="2">點(diǎn)擊觸發(fā)發(fā)送給微信朋友</button>

js部分:

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

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

/**
 * 此插件主要作用是在UC和QQ兩個(gè)主流瀏覽器
 * 上面觸發(fā)微信分享到朋友圈或發(fā)送給朋友的功能
 */
'use strict';
var UA = navigator.appVersion;
 
/**
 * 是否是 UC 瀏覽器
 */
var uc = UA.split('UCBrowser/').length > 1 ? 1 : 0;
 
/**
 * 判斷 qq 瀏覽器
 * 然而qq瀏覽器分高低版本
 * 2 代表高版本
 * 1 代表低版本
 */
var qq = UA.split('MQQBrowser/').length > 1 ? 2 : 0;
 
/**
 * 是否是微信
 */
var wx = /micromessenger/i.test(UA);
 
/**
 * 瀏覽器版本
 */
var qqVs = qq ? parseFloat(UA.split('MQQBrowser/')[1]) : 0;
var ucVs = uc ? parseFloat(UA.split('UCBrowser/')[1]) : 0;
 
/**
 * 獲取操作系統(tǒng)信息 iPhone(1) Android(2)
 */
var os = (function () {
  var ua = navigator.userAgent;
 
  if (/iphone|ipod/i.test(ua)) {
    return 1;
  } else if (/android/i.test(ua)) {
    return 2;
  } else {
    return 0;
  }
}());
 
/**
 * qq瀏覽器下面 是否加載好了相應(yīng)的api文件
 */
var qqBridgeLoaded = false;
 
// 進(jìn)一步細(xì)化版本和平臺(tái)判斷
if ((qq && qqVs < 5.4 && os == 1) || (qq && qqVs < 5.3 && os == 1)) {
  qq = 0;
} else {
  if (qq && qqVs < 5.4 && os == 2) {
    qq = 1;
  } else {
    if (uc && ((ucVs < 10.2 && os == 1) || (ucVs < 9.7 && os == 2))) {
      uc = 0;
    }
  }
}
/**
 * qq瀏覽器下面 根據(jù)不同版本 加載對(duì)應(yīng)的bridge
 * @method loadqqApi
 * @param {Function} cb 回調(diào)函數(shù)
 */
function loadqqApi(cb) {
  // qq == 0 
  if (!qq) {
    return cb && cb();
  }
  var script = document.createElement('script');
  script.src = (+qq === 1) ? '//3gimg.qq.com/html5/js/qb.js' : '//jsapi.qq.com/get?api=app.share';
  /**
   * 需要等加載過 qq 的 bridge 腳本之后
   * 再去初始化分享組件
   */
  script.onload = function () {
    cb && cb();
  };
  document.body.appendChild(script);
}
/**
 * UC瀏覽器分享
 * @method ucShare
 */
function ucShare(config) {
  // ['title', 'content', 'url', 'platform', 'disablePlatform', 'source', 'htmlID']
  // 關(guān)于platform
  // ios: kWeixin || kWeixinFriend;
  // android: WechatFriends || WechatTimeline
  // uc 分享會(huì)直接使用截圖
  var platform = '';
  var shareInfo = null;
  // 指定了分享類型
  if (config.type) {
    if (os == 2) {
      platform = config.type == 1 ? 'WechatTimeline' : 'WechatFriends';
    } else if (os == 1) {
      platform = config.type == 1 ? 'kWeixinFriend' : 'kWeixin';
    }
  }
  shareInfo = [config.title, config.desc, config.url, platform, '', '', ''];
  // android 
  if (window.ucweb) {
    ucweb.startRequest && ucweb.startRequest('shell.page_share', shareInfo);
    return;
  }
  if (window.ucbrowser) {
    ucbrowser.web_share && ucbrowser.web_share.apply(null, shareInfo);
    return;
  }
}
/**
 * qq 瀏覽器分享函數(shù)
 * @method qqShare
 */
function qqShare(config) {
  var type = config.type;
  //微信好友 1, 微信朋友圈 8
  type = type ? ((type == 1) ? 8 : 1) : '';
  var share = function () {
    var shareInfo = {
      'url': config.url,
      'title': config.title,
      'description': config.desc,
      'img_url': config.img,
      'img_title': config.title,
      'to_app': type,
      'cus_txt': ''
    };
    if (window.browser) {
      browser.app && browser.app.share(shareInfo);
    } else if (window.qb) {
      qb.share && qb.share(shareInfo);
    }
  };
  if (qqBridgeLoaded) {
    share();
  } else {
    loadqqApi(share);
  }
}
/**
 * 對(duì)外暴露的接口函數(shù)
 * @method mShare
 * @param {Object} config 配置對(duì)象
 */
function mShare(config) {
  this.config = config;
  this.init = function (type) {
    if (typeof type != 'undefined') this.config.type = type;
    try {
      if (uc) {
        ucShare(this.config);
      } else if (qq && !wx) {
        qqShare(this.config);
      }
    } catch (e) {}
  }
}
// 預(yù)加載 qq bridge
loadqqApi(function () {
  qqBridgeLoaded = true;
});
if (typeof module === 'object' && module.exports) {
  module.exports = mShare;
} else {
  window.mShare = mShare;
}

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一步一步教你寫帶圖片注釋的淡入淡出插件(三)

    一步一步教你寫帶圖片注釋的淡入淡出插件(三)

    接上一文,我們已經(jīng)實(shí)現(xiàn)了圖片的自動(dòng)淡入淡出播放。接下來需要加入控制器。
    2010-10-10
  • JavaScript 巧學(xué)巧用

    JavaScript 巧學(xué)巧用

    本文主要給大家分享一下在編寫JavaScript代碼的時(shí)候存在的一些方法和技巧,雖然有時(shí)候條條大路都通向羅馬,但是也許總會(huì)有那么一條最短的路徑可走。希望通過以下幾點(diǎn)JavaScript技巧讓大家的代碼“化繁為簡(jiǎn),化簡(jiǎn)為精”
    2017-05-05
  • 詳解使用mocha對(duì)webpack打包的項(xiàng)目進(jìn)行

    詳解使用mocha對(duì)webpack打包的項(xiàng)目進(jìn)行"冒煙測(cè)試"的大致流程

    這篇文章主要介紹了詳解使用mocha對(duì)webpack打包的項(xiàng)目進(jìn)行"冒煙測(cè)試"的大致流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 前端JavaScript獲取電池信息

    前端JavaScript獲取電池信息

    受到同事啟發(fā),突然發(fā)現(xiàn)了幾個(gè)有趣又實(shí)用的web api,下面這篇文章主要給大家介紹了關(guān)于前端JavaScript獲取電池信息的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 每天一篇javascript學(xué)習(xí)小結(jié)(基礎(chǔ)知識(shí))

    每天一篇javascript學(xué)習(xí)小結(jié)(基礎(chǔ)知識(shí))

    這篇文章主要介紹了javascript基本的知識(shí)點(diǎn),包括字符串、特殊字符運(yùn)算、變量轉(zhuǎn)字符串等,對(duì)javascript的基礎(chǔ)知識(shí)講解的很全面,為了更好地幫助大家學(xué)習(xí)javascript,感興趣的小伙伴們可以參考一下
    2015-11-11
  • two.js之實(shí)現(xiàn)動(dòng)畫效果示例

    two.js之實(shí)現(xiàn)動(dòng)畫效果示例

    本篇文章主要介紹了two.js之實(shí)現(xiàn)動(dòng)畫效果示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • uniapp中使用vuex并持久化的方法示例

    uniapp中使用vuex并持久化的方法示例

    vuex是基于vuex.js的狀態(tài)管理工具,可以把它理解為一個(gè)倉(cāng)庫(kù),下面這篇文章主要給大家介紹了關(guān)于uniapp中如何使用vuex并持久化的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • JavaScript作用域與作用域鏈優(yōu)化方式

    JavaScript作用域與作用域鏈優(yōu)化方式

    這篇文章主要介紹了JavaScript作用域與作用域鏈優(yōu)化方式,圍繞主題展開JavaScript作用域以及作用域鏈的那些事情,以及針對(duì)它們的一些我們?cè)诖a中優(yōu)化小技巧,需要的朋友可以參考一下
    2022-07-07
  • JavaScript 生成唯一ID的幾種方式

    JavaScript 生成唯一ID的幾種方式

    這篇文章主要介紹了JavaScript 生成唯一ID的幾種方式,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2021-02-02
  • JS正則表達(dá)式驗(yàn)證中文字符

    JS正則表達(dá)式驗(yàn)證中文字符

    本篇文章主要介紹了JS正則表達(dá)式驗(yàn)證中文字符的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-05-05

最新評(píng)論