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 ...
随机推荐
- ABAP-创建信息记录
CALL FUNCTION 'ME_INITIALIZE_INFORECORD'. CALL FUNCTION 'ME_DIRECT_INPUT_INFORECORD' *&--------- ...
- matlab vs使用
~ matlab无论什么程序只输出 ans 1 注意matlab命名规则:1不能与matlab内部函数名字重合.2.文件名首字母不能是数字或下划线.3.文件名中不能有空格.4.文件名不能太长.5注意大 ...
- Javascript代码收集
1.模仿jquery each 原文地址 function each(obj, fn){ var i; if(Object.prototype.toString.call(obj) === '[obj ...
- Apache NiFi 开发 处理器使用说明
NIFI的使用: 注意:FlowFile由[属性]和[内容]组成,在解析的过程中这个概念非常重要,因为有些组件操作的是属性,有些组件操作的是内容,在配置组件时Destination配置项的选择很重要, ...
- 4.1 《锋利的jQuery》jQuery中的事件
$(document).ready()方法和window.onload方法的区别 事件绑定 合成事件 事件冒泡 事件对象的属性 tip1:停止事件冒泡和阻止默认行为都可以用return false替代 ...
- 使用valgrind进行内存泄漏和非法内存操作检测
valgrind是一个强大的工具,最常用的功能是用它来检测内存泄漏和非法内存的使用.要想让valgrind报告的更加细致,请使用-g进行编译. 基本命令如下: $ valgrind --tool=me ...
- css3立体旋转菜单
css3立体旋转菜单,css3,3D,立体旋转,立体菜单,菜单导航,css3立体旋转菜单是一款纯css3实现的三维立体旋转导航菜单. 源码下载页:http://www.huiyi8.com/sc/71 ...
- 分享知识-快乐自己:Linux—jdk 安装步骤
1.查看现有版本:java -version 2.查看jdk的具体版本: rpm -qa| grep jdk || rpm -qa| grep gcj 3.删除已安装jdk包: rpm -e --no ...
- python-多线程2-线程同步
线程同步: 一个场景: 一个列表里所有元素都是0,线程A从后向前把所有元素改成1,而线程B负责从前往后读取列表并打印. 那么,可能线程A开始改的时候,线程B便来打印列表了,输出就变成一半0一半1,这就 ...
- Log4j 与 logback对比、及使用配置
二.参考文档 1.Log4j 与 logback对比.及使用配置