JS 检查是否在微信浏览器
/**
* 检查是否在微信浏览器
* zengkai
*/
function isWeixinBrowser(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
}else if(typeof WeixinJSBridge !== "undefined"){
return true;
}else {
return false;
}
}
function share(flag,value){
$.ajax({
url:share_wxurl+'/act/jssdkv2!config.action',
data:"url="+encodeURIComponent(location.href.split('#')[0]),
type:'post',
dataType:'json',
success:function(result){
if(result.result){
var map = result.map;
wx.config({
debug: flag, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'wx4b62dcb8dc82dc9f', // 必填,公众号的唯一标识
timestamp: map.timestamp, // 必填,生成签名的时间戳
nonceStr: map.nonceStr, // 必填,生成签名的随机串
signature: map.signature,// 必填,签名,见附录1
jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function(){
// alert("config信息验证成功");
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.onMenuShareTimeline({
title: value.title+"-"+value.desc, // 分享标题
link: value.link, // 分享链接
imgUrl: value.imgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
value.success();
},
cancel: function () {
// 用户取消分享后执行的回调函数
value.cancel();
}
});
wx.onMenuShareAppMessage({
title: value.title, // 分享标题
desc: value.desc, // 分享描述
link: value.link, // 分享链接
imgUrl: value.imgUrl, // 分享图标
type: value.type, // 分享类型,music、video或link,不填默认为link
dataUrl: value.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
// 用户确认分享后执行的回调函数
value.success();
},
cancel: function () {
// 用户取消分享后执行的回调函数
value.cancel();
}
});
});
wx.error(function(res){
// alert("config信息验证失败");
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
}
},
error:function(){
}
});
};
function shareChangeVal(value){
wx.onMenuShareTimeline({
title: value.title+"-"+value.desc, // 分享标题
link: value.link, // 分享链接
imgUrl: value.imgUrl, // 分享图标
success: function () {
value.success();
},
cancel: function () {
value.cancel();
}
});
wx.onMenuShareAppMessage({
title: value.title, // 分享标题
desc: value.desc, // 分享描述
link: value.link, // 分享链接
imgUrl: value.imgUrl, // 分享图标
type: value.type, // 分享类型,music、video或link,不填默认为link
dataUrl: value.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
value.success();
},
cancel: function () {
value.cancel();
}
});
};
$(function() {
var share_link = "http://h5.gmccopen.com";
var title = "闪亮登场!2017年高校充50送500强势回归!";
var imgUrl = "http://h5.gmccopen.com/act/gxhd/images/gxhd500.jpg";
var value = {
title: title, // 分享标题
desc: '高校用户专享优惠,充50送500,不要再错过啦!', // 分享描述
link: share_link, // 分享链接
imgUrl: imgUrl, // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
// 用户确认分享后执行的回调函数
//alert('已分享');
},
cancel: function () {
// 用户取消分享后执行的回调函数
//alert('已取消');
}
};
share(false,value);
})
JS 检查是否在微信浏览器的更多相关文章
- js判断是否是微信浏览器以及重定向
async created () {//这个是判断是否是微信浏览器, let ua = navigator.userAgent.toLowerCase() if (ua.match(/MicroMes ...
- js判断是不是在微信浏览器打开?
is_weixin:function(){ var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/Mic ...
- 用js判断是否是微信浏览器
//判断是否是微信浏览器的函数 function isWeiXin(){ //window.navigator.userAgent属性包含了浏览器类型.版本.操作系统类型.浏览器引擎类型等信息,这 ...
- JS判断是否在微信浏览器打开
if (browser.versions.mobile) {//判断是否是移动设备打开.browser代码在下面 var ua = navigator.userAgent.toLowerCase(); ...
- js判断是否在微信浏览器中打开
用JS来判断,无论是android 还是iphone,ipad 都可以 function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); ...
- [JavaScript] js判断是否在微信浏览器中打开
用JS来判断了,经过查找资料终于实现了效果, function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(u ...
- js判断是否是微信浏览器
<script type="text/javascript"> window.onload = function(){ if(isWeiXin()){ var p = ...
- js 在IOS系统微信浏览器内如何动态给title赋值
var body = document.getElementsByTagName('body')[0]; document.title = title; var iframe = document.c ...
- JS 判断是否是微信浏览器 webview
原理很简单,就是判断 ua 中是否有字段 “micromessenger" 代码如下: function isWechat () { var ua = window.navigator.us ...
随机推荐
- 【shell】常用的正则表达式
一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...
- linux 下 cat
[root@localhost Data]# cat << end > iptable> 3> 4> 5> > 6> end[root@local ...
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Goo ...
- python处理txt文件的一种情况
在txt文本中,以换行符作为标记分段处理txt文件中的内容的方法: with open(path, 'r', encoding='utf-8') as f: for line in f: if lin ...
- BZOJ 3314 [Usaco2013 Nov]Crowded Cows:单调队列
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3314 题意: N头牛在一个坐标轴上,每头牛有个高度.现给出一个距离值D. 如果某头牛在它的 ...
- bzoj 4319: Suffix reconstruction 后缀数组+构造
题目大意 给定后缀数组sa,要求构造出满足sa数组的字符串.或输出无解\(n\leq 5*10^5\) 题解 我们按照字典序来考虑每个后缀 对于\(Suffix(sa[i])\)和\(Suffix(s ...
- VirtualBox文件系统已满--磁盘扩容
第1步:为virtualbox虚拟电脑扩容 进入命令行,以Windows系统为例 (特别注意空格和中文) 1.启动CMD命令行,进入VirtualBox的安装目录.如 运行:cmd C:\Users\ ...
- vue实现图片的上传和删除
目录 1 UI库使用ElementUI 2 后端使用Express + formidable模块 1 UI库使用ElementUI 安装ElementUI $ npm install --save-d ...
- 用Spring MVC开发简单的Web应用程序
1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自 ...
- struts2的使用知识点
最开始学习java的时候学习过struts,但是对配置和struts的理解深度不够,现在工作虽然再用,但是自己搭建环境和使用心得始终很零散,所以现在决定重新理一遍,有条理的学习一下struts. 至于 ...