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 ...
随机推荐
- 蓝牙 CTS 测试
安装蓝牙测试安装包 之后 . 安卓包名字 android-cts-6.0_r19-linux_x86-x86.zip 解压之后 /cts/android-cts/tools/ 目录下 运行 ./ ...
- PAT 甲级 1007. Maximum Subsequence Sum (25) 【最大子串和】
题目链接 https://www.patest.cn/contests/pat-a-practise/1007 思路 最大子列和 就是 一直往后加 如果 sum < 0 就重置为 0 然后每次 ...
- 怎么升级iOS10教程
在前两天的开发者大会上刚推出了iOS10,我介绍一下怎么升级到iOS10的办法.所有人只用一个iPhone就可以升级到iOS10,不需要电脑,也不需要开发者账号. http://bbs.feng.co ...
- 项目log4j日志管理详解
项目log4j日志管理详解 log4j日志系统在项目中重要性在这里就不再累述,我们在平时使用时如果没有特定要求,只需在log4j.properties文件中顶入输出级别就行了.如果要自定义输出文件,对 ...
- Spring事务超时时间可能存在的错误认识
摘自:http://jinnianshilongnian.iteye.com/blog/1986023, 感谢作者. 1.先看代码 1.1.spring-config.xml <bean id= ...
- Linux2.4文件系统中vfsmount、安装点的dentry、设备的dentry之间的关系【转】
本文转载自:https://blog.csdn.net/mishifangxiangdefeng/article/details/7566575 1.vfsmount.安装点的dentry.设备的de ...
- Sql 工资第二高(考虑并列)
--题目:Employee表中有ID,Name,Salary三列,求薪资排序第二高的Employee的Name select * FROM [Employee] --等于2时为空,因为有并列第一 SE ...
- Contiki 2.7 Makefile 文件(五)
4.第四部分 (1) oname = ${patsubst %.c,%.o,${patsubst %.S,%.o,$(1)}} 自定义函数,$(1)表示调用oname这个函数的第一个参数,patsub ...
- Mockito @BeforeClass @BeforeMethod @BeforeTest 的生命周期
@BeforeClass---@AfterClass 类实例化前, 被执行, 主要用于设置环境变量等, 与SpringTestContext结合用的时候要注意, 这种情况下@autowire的bean ...
- Android6.0 旋转屏幕(五)WMS启动应用流程(屏幕方向相关)
一.强制设置方向 1.Activity 如果要强制设置一个Activity的横竖屏可以通过Manifest去设置,跟Activity相关的信息都会保存在ActivityInfo当中. android: ...