微信分享、获取地理位置封装

/*
@   wechat({
@       shareDatas : {
@          title: ‘string‘,//分享的标题
@          desc: ‘string‘,//分享的描述
@          shareUrl: ‘url‘,//分享出去的链接,为空则分享出去当前页的链接
@          imgUrl: ‘url‘,//分享的图标链接,为空则图标为银巴克LOGO
@          goToUrl: ‘url‘,//分享后跳转的链接,为空则不跳转
@          from: ‘url‘//统计分享来源的ajax接口url,无则留空
@       },
@       getLocation : function(res){}//获取地理位置后的回调方法
@   });
@
*/
function wechat(option){
    var callback = function (json) {
        var data = json.msg;
        wx.config({
            debug: false,
            appId: data.appId,
            timestamp: data.timestamp,
            nonceStr: data.noncestr,
            signature: data.signature,
            jsApiList: [
                ‘onMenuShareTimeline‘,
                ‘onMenuShareAppMessage‘,
                ‘onMenuShareQQ‘,
                ‘onMenuShareWeibo‘,
                ‘getLocation‘
            ]
        });
        wx.ready(function () {
            console.log(option.shareDatas)
            if (option.shareDatas) {
                var sData = {
                    title: option.shareDatas.title,
                    desc: option.shareDatas.desc,
                    link: option.shareDatas.shareUrl ? option.shareDatas.shareUrl : window.location.href, // 分享链接
                    imgUrl: option.shareDatas.imgUrl ? option.shareDatas.imgUrl : ‘https://mmbiz.qlogo.cn/mmbiz/nzhlVibVGiaaLIY4ia1Vq7Vibs4v4JszQy933QiczTQvRL5jibIzZ8CWkhibdAaPLJCQ1W7FXmA97HUGnxroNbUUs6XrQ/0?wx_fmt=png‘,
                    success: function () {
                        if (option.shareDatas.from) {
                            $.post(option.shareDatas.from)
                        };
                        //alert(‘已分享‘);
                        // 用户确认分享后执行的回调函数
                        if(option.shareDatas.goToUrl){
                            window.location.href = option.shareDatas.goToUrl;
                        }
                    }
                };
                wx.onMenuShareAppMessage(sData);
                wx.onMenuShareTimeline(sData);
                wx.onMenuShareQQ(sData);
                wx.onMenuShareWeibo(sData);
            };
            if (option.getLocation) {
                wx.getLocation({
                    type: ‘wgs84‘, // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入‘gcj02‘
                    success: function (res) {
                        // var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
                        // var longitude = res.longitude ; // 经度,浮点数,范围为180 ~ -180。
                        // var speed = res.speed; // 速度,以米/每秒计
                        // var accuracy = res.accuracy; // 位置精度
                        console.log(1)
                        typeof(option.getLocation) === ‘function‘ && option.getLocation(res, 1);//1成功0失败
                        console.log(2)
                    },
                    cancel: function (res) {
                        typeof(option.getLocation) === ‘function‘ && option.getLocation(res, 0);
                        //用户拒绝授权获取地理位置
                    }
                });
            }
        });
        wx.error(function (res) {
            //alert(res.errMsg);
        });
    };
    var getConfigUrl = "/weixin/share/?url=" + encodeURIComponent(window.location.href).replace(/‘/g, "%27").replace(/"/g, "%22");
    $.ajax({
        url: getConfigUrl,
        dataType: "json",
        success: function (response) {
            callback && callback(response);
        },
        error: function (xhr, type) {
            console.log(‘xhr:‘);
            console.log(xhr);
            console.log(‘type:‘);
            console.log(type);
            console.log("网络错误")
        }
    })
}

  

时间: 2024-10-25 23:48:48

微信分享、获取地理位置封装的相关文章

微信js获取地理位置

1.绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对应的接口权限. 2.引入js文件 <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script type="text/javascript" src=

Net微信网页开发之使用微信JS-SDK获取当前地理位置

前言: 前段时间有一个关于通过获取用户当前经纬度坐标,计算出该用户距离某指定地点之间的距离.因为做这个项目需要能够获取到比较精确的经纬度坐标,刚开始使用的是百度地图结果发现百度地图地位不太准确(有时候相差的比较的大,后来了解到了百度获取用户经纬度与用户当前使用的网络有很大的关系),后来换成了高德地图结果还是一样.最后我想刚好做的是个微信网站项目,为什么不使用微信自带接口呢?所以最后使用了微信JS-SDK来获取用户当前地理位置的接口. 微信JS-SDK的使用步骤,配置信息的生成获取讲解: 关于JS

ionic单页面应用中微信分享的问题总结

首先说一下 ionic 是单页面应用,也就是说整个项目就有一个index.html, 那么问题就就来了, 如果我们不同的页面要分享给大家的是不同的链接和图片,应该怎么去做呢? 这就是我们今天要总结的东西. 今天这个问题真是闹得我心烦,有必要总结下来了. 学习重点: 微信分享方法巧妙封装 监听路由事件$rootScope.$on 举一反三 微信分享 关于微信分享,大家都是在熟悉不过了,无非就是调用微信的SDK,授权,给他分享索要的东西的ok.所以对于微信分享似乎没有什么好说的,但是细心的伙伴有木有

Android集成微信分享的要点及源码示例

如今,社会化分享成了App必不可少的一个功能,而其中最重要的莫过于微信分享,由于微信庞大的用户群及活跃度,因此我们的App往往都需要集成微信分享,微信开放平台也提供了相应的分享SDK.鉴于看到很多人说调不起微信分享,下面就来分享下自己的经验以及在集成微信分享过程中需要注意的地方,最终会提供自己封装好的微信分享源码示例. 其实集成的步骤在微信开放平台的文档指南中已经写的很清楚了: 1.申请AppID.这一步需要在微信开放平台注册你的App就可以了,注意的是需要使用正式的keystore签名你的Ap

【原创】微信公众号与HTML 5混合模式揭秘——JSSDK获取地理位置

微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK 微信公众号与HTML 5混合模式揭秘2——分享手机相册中照片 JSSDK为开发者提供了两个位置API服务:获取地理位置和使用微信内置地图查看位置. 下面还是沿用以往的实战演示方法.先创建一份location.js文件,为“wxJSSDK”增加“location”的相关API,代码如下: 01 wxJSSDK.location= function(locationApi){ 02 if(wxJSSDK.isReady){//wxJSSD

微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索

原创声明:本文来源于本人另一博客[微信JS-SDK之地理位置的获取,集成百度地图实现在线地图搜索]原创作品,绝非他处摘取,转载请联系博主 本次讲解微信开发第三篇:获取用户地址位置信息,是非常常用的功能,特别是服务行业公众号,尤为需要该功能,本次讲解的就是如何调用微信JS-SDK接口,获取用户位置信息,并结合百度地铁,实现在线地图搜索,与在线导航. 官方文档地址:https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.htm

微信公众平台网页开发实战--3.利用JSSDK在网页中获取地理位置(HTML5+jQuery)

复制一份JSSDK环境,创建一份index.html文件,结构如图7.1所示. 图7.1  7.1节文件结构 在location.js中,封装“getLocation”接口,如下: 01 wxJSSDK.location = function(locationApi){ 02 if(wxJSSDK.isReady){ //wxJSSDK.isReady 查看微信JSSDK是否初始化完毕 03 if(locationApi){ 04 locationApi.getLocation && wx

微信连接转发后无法获取地理位置问题解决

微信分享会根据分享的不同,为原始链接拼接如下参数: 朋友圈 from=timeline&isappinstalled=0微信群 from=groupmessage&isappinstalled=0好友分享 from=singlemessage&isappinstalled=0 这样导致请求页面获取地理位置wx.getLocation方法失败,可通过wx.config设置debug : ture进行调试,发现究其原因是签名计算错误了. 进入获取签名的方法中,需要在url上添加固定分享

微信js-sdk开发获取签名和获取地理位置接口示例

### 微信js-sdk开发获取签名和获取地理位置接口示例 前言:在做微信公众号开发时需要获取用户的地理位置信息,之前通过高德或者百度.腾讯等地图的api时发现经常获取不到,毕竟第三方的东西,后来改为采用微信内置的js-sdk中的获取地理位置接口,在这主要记录下签名的获取(麻烦点)和一个获取地理位置的例子. 准备工作: 微信测试号appid和appsecret 获取地址:微信测试账号获取 在测试账号里先填写接口配置信息和js接口安全域名(这个是必须的) 示例:页面中需要点击图标获取地理位置信息