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 ...
随机推荐
- Java多线程系列 基础篇05 synchronized关键字
1. synchronized原理 在java中,每一个对象有且仅有一个同步锁,所以同步锁是依赖于对象而存在.当我们调用某对象的synchronized方法时,就获取了该对象的同步锁.例如,synch ...
- 用ant编译打包时 警告:编码 GBK 的不可映射字符
原因,参考http://zhidao.baidu.com/question/26901568.html 添加如下的红色一行后编译通过<target name="compile" ...
- mooc_java 集合框架中 学生所选课程2Map&HashMap
Map&HashMapMap提供映射关系,元素以键值对形式存储,Map的键值对一Entry类型的对象实例形式存在,key值不能重复,value可以键最多能映射到一个值,支持泛型 Map< ...
- BZOJ 1601 [Usaco2008 Oct]灌水:最小生成树
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1601 题意: Farmer John已经决定把水灌到他的n(1<=n<=300 ...
- python-函数用法
Python 一.lower() 方法转换字符串中所有大写字符为小写. lower()方法语法: str.lower() 参数 无. 返回值 返回将字符串中所有大写字符转换为小写后生成的字符串. 练习 ...
- win32com操作word(1):几个重要的对象(28.35)
Pywin32模块为python封装了操作windows底层API函数的功能.而win32com是Pywin32下面的一个模块,专门负责操作com组件. 由于office工具(Word.Excel等) ...
- Python 连接Oracle数据库
连接:python操作oracle数据库 python——连接Oracle数据库 python模块:cx_Oracle, DBUtil 大概步骤: 1. 下载模块 cx_Oracle (注意版本) ...
- 学习 Shell —— 括号、引号
shell中各种括号的作用().(()).[].[[]].{} shell中的括号(小括号,大括号/花括号) ${},大括号用于确定变量的范围: $(( 数学运算 )) 0. 引号 单引号.双引号.飘 ...
- python 案例之老王开枪
- python爬虫知识点总结(六)BeautifulSoup库详解
官方学习文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 一.什么时BeautifulSoup? 答:灵活又方便的网页解析库,处 ...