• xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!


    微信分享 API

    https://market.cmbchina.com/MPage/online/190416201200302/wechatShare.js

    /*
    * 注意:
    * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
    * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
    * 3. 完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
    *
    * 如有问题请通过以下渠道反馈:
    * 邮箱地址:weixin-open@qq.com
    * 邮件主题:【微信JS-SDK反馈】具体问题
    * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
    **
    * 在需要调用JS接口的页面引入如下JS文件,
    * (支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js
    *  <script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
    *  
    * 2015-5-21 
    * 扩展微信 js
    */
    
    var wxJs = {
        /**
         *weixinjs.setPrefix('${SYSURL}');
         */
        root: "",
        setPrefix: function (root) {
            this.root = root
        },
    
        /**
         *获取url上面的参数值
         *name 参数名
         *return 参数值
         */
    
        getUrlParam: function (name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)") //构造一个含有目标参数的正则表达式对象
            var r = window.location.search.substr(1).match(reg) //匹配目标参数
            if (r != null) return unescape(r[2])
            return null //返回参数值
        },
    
        /**
         *判断是否是微信浏览器
         */
    
        isWeixin: function () {
            var ua = navigator.userAgent.toLowerCase()
            if (ua.match(/MicroMessenger/i) == "micromessenger") {
                return true
            } else {
                return false
            }
        },
    
        /**
         *判断是否是iPhone手机
         */
    
        isIphone: function () {
            var ua = navigator.userAgent.toLowerCase()
            if (ua.match(/iPhone/i) == "iphone") {
                return true
            } else {
                return false
            }
        },
    
        /**
         *判断是否是Android手机
         */
    
        isAndroid: function () {
            var ua = navigator.userAgent.toLowerCase()
            if (ua.match(/Android/i) == "android") {
                return true
            } else {
                return false
            }
        },
    
        /**
         *监测参数
         */
        checkMParam: function (value) {
            if (
                value != null &&
                value != undefined &&
                value != "" &&
                value != "null" &&
                value != "NULL" &&
                value != "undefined" &&
                value != "UNDEFINED"
            ) {
                return true
            }
            return false
        }
    }
    
    //设置微信参数
    function setwx_config(appId, timestamp, nonceStr, signature) {
        /*
           * 注意:
           * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
           * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
           * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
           *
           * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
           * 邮箱地址:weixin-open@qq.com
           * 邮件主题:【微信JS-SDK反馈】具体问题
           * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
           */
        wx.config({
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: appId, // 必填,公众号的唯一标识
            timestamp: timestamp, // 必填,生成签名的时间戳
            nonceStr: nonceStr, // 必填,生成签名的随机串
            // 必填,签名,见附录1
            signature: signature,
            // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
            jsApiList: [
                "checkJsApi",
                "onMenuShareTimeline",
                "onMenuShareAppMessage",
                "onMenuShareQQ",
                "onMenuShareWeibo",
                "hideMenuItems",
                "showMenuItems",
                "hideAllNonBaseMenuItem",
                "showAllNonBaseMenuItem",
                "translateVoice",
                "startRecord",
                "stopRecord",
                "onRecordEnd",
                "playVoice",
                "pauseVoice",
                "stopVoice",
                "uploadVoice",
                "downloadVoice",
                "chooseImage",
                "previewImage",
                "uploadImage",
                "downloadImage",
                "getNetworkType",
                "openLocation",
                "getLocation",
                "hideOptionMenu",
                "showOptionMenu",
                "closeWindow"
                /**'scanQRCode',
                      'chooseWXPay',
                      'openProductSpecificView'
                      'addCard',
                      'chooseCard',
                      'openCard'**/
            ]
        })
    }
    
    //微信分享
    function wx_Share(shareData) {
        var wxappid = document.getElementById("shareAppid").value //微信号appID
        var timestamp = document.getElementById("shareTimeStamp").value //时间戳
        var nonceStr = document.getElementById("shareNonceStr").value //随机字符串
        var signature = document.getElementById("shareSign").value //签名
        setwx_config(wxappid, timestamp, nonceStr, signature)
    
        //微信分享 jS
        wx.ready(function () {
            if (shareData != null) {
                wx.showOptionMenu()
                wx.onMenuShareAppMessage(shareData)
                wx.onMenuShareTimeline(shareData)
            } else {
                //js-sdk  屏蔽分享按钮
                wx.hideOptionMenu()
            }
        })
    }
    
    //微信分享
    function weixinShare(options, flag) {
        if (!wxJs.isWeixin()) {
            return
        }
        var wxappid = options.wxappid //微信号appID
        var timestamp = options.timestamp //时间戳
        var nonceStr = options.nonceStr //随机字符串
        var signature = options.signature //签名
        var shareData = options.shareData
        setwx_config(wxappid, timestamp, nonceStr, signature)
        //微信分享 jS
        wx.ready(function () {
            if (shareData !== null || (options.shareWechatParam !== null && options.shareTimeLineParam !== null)) {
                wx.showOptionMenu()
                if (flag) {
                    wx.onMenuShareAppMessage(options.shareWechatParam)
                    wx.onMenuShareTimeline(options.shareTimeLineParam)
                } else {
                    wx.onMenuShareAppMessage(shareData)
                    wx.onMenuShareTimeline(shareData)
                }
            } else {
                //js-sdk  屏蔽分享按钮
                wx.hideOptionMenu()
            }
        })
    }
    
    
    

    refs



    ©xgqfrms 2012-2020

    www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


  • 相关阅读:
    使用 BinToHex() 把 TBytes 转换为十六进制字符串 回复 "梧桐栖凤" 的问题
    ASP.NET中UrlEncode应该用Uri.EscapeDataString()
    抛弃WebService,在.NET4中用 jQuery 调用 WCF
    事实证明Ajax的世界更需要ASP.NET MVC
    tinyMCEPopup.close轻松让IE 9 RC崩溃
    不走寻常路:在WebForm中使用MVC
    关于ASP.NET预编译
    不错的VS2010扩展——JSEnhancements,让js和css也折叠
    VS2010 SP1 Beta与VisualSVN的冲突引起VS2010关闭时重启
    Web应用架构探索笔记 —— 查询
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/14066766.html
Copyright © 2020-2023  润新知