全国服务热线:4008-888-888

技术知识

HTML5中外界访问器勾起手机微信共享

近期在做1个手机上站,规定点一下共享能够立即开启手机微信共享出去。而并不是jiathis,share共享这类的点一下出来2维码。在网络上看了许多,都说APP能勾起手机微信,手机上网页页面完成不上。也找了许多都不可以立即勾起手机微信。

总结出来1个能够立即勾起手机微信的。融入手机上qq访问器和uc访问器。

下面上编码,把这些立即放到要转发的网页页面里便可以了:

html一部分:

<script src="mshare.js"></script>//引进mshare.js
<button data-mshare="0">点一下弹出原生态共享面板</button>
<button data-mshare="1">点一下开启盆友圈共享</button>
<button data-mshare="2">点一下开启推送给手机微信盆友</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的编码共享,把这些编码新建1个js文档放进去,随后在网页页面中引进就ok了。

 

/**
 * 此软件关键功效是在UC和QQ两个流行访问器
 * 上面开启手机微信共享到盆友圈或推送给盆友的作用
 */
'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;
 
/**
 * 获得实际操作系统软件信息内容  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访问器下面 是不是载入好了相应的api文档
 */
var qqBridgeLoaded = false;
 
// 进1步细化版本号友谊台分辨
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访问器下面 依据不一样版本号 载入对应的bridge
 * @method loadqqApi
 * @param  {Function} cb 回调函数涵数
 */
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']
    // 有关platform
    // ios: kWeixin || kWeixinFriend;
    // android: WechatFriends || WechatTimeline
    // uc 共享会立即应用截图
    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 访问器共享涵数
 * @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);
    }
}
/**
 * 对外曝露的插口涵数
 * @method mShare
 * @param  {Object} config 配备目标
 */
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) {}
    }
}
// 预载入 qq bridge
loadqqApi(function () {
    qqBridgeLoaded = true;
});
if (typeof module === 'object' && module.exports) {
    module.exports = mShare;
} else {
    window.mShare = mShare;
}

好了,这样便可以立即勾起手机微信开展共享啦

总结

以上所述是网编给大伙儿详细介绍的HTML5中外界访问器勾起手机微信共享,期待对大伙儿有一定的协助,假如大伙儿有任何疑惑请给我留言,网编会立即回应大伙儿的。在此也十分谢谢大伙儿对脚本制作之家网站的适用!
假如你感觉本文对你有协助,欢迎转载,烦请注明出处,感谢!



在线客服

关闭

客户服务热线
4008-888-888


点击这里给我发消息 在线客服

点击这里给我发消息 在线客服