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 ...
随机推荐
- 添加@ControllerAdvice后报错 Failed to invoke @ExceptionHandler method
首先.单独使用ControllerAdvice 无法正常工作.需要配合@EnableWebMvc 使用. @ControllerAdvice @EnableWebMvc pulbic class Ex ...
- ul和li 基本用法分析(这里主要想学习怎么用在导航栏中)
常用作:导航,少量数据表格,居中 一.做导航,居中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- Chart.js 动态图表的使用
一.相关资料 1. 简介 Chart.js 是一个基于 HTML5 的简单的面向对象的图表库,支持包括 IE7/8 和所有现代浏览器.支持六种图标:曲线图(Linecharts).柱状图(Barcha ...
- REST、DRF(View源码解读、APIView源码解读)
一 . REST 前言 1 . 编程 : 数据结构和算法的结合 .小程序如简单的计算器,我们输入初始数据,经过计算,得到最终的数据,这个过程中,初始数据和结果数据都是数据,而计算 ...
- iOS开发中集成Reveal
[转]http://blog.devzeng.com/blog/ios-reveal-integrating.html 配置方式一简介有效. Reveal 是一个界面调试工具.使用Reveal,我们可 ...
- 一次跨域请求出现 OPTIONS 请求的问题及解决方法
问题背景浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 在前后端开发过程经常会遇到跨域问题.网上也都有解决方案. 写这篇文章时,我们碰到的一个场景是:要给s系统做一 ...
- Kbuntu16.04添加工作空间
工作空间是一个非常方便的功能,可以让开发者每次只聚焦一个屏幕,又能在各个空间中来回切换.有一种屏幕被扩展的感觉. Kbuntu默认只有一个工作空间,需要按如下方式添加: System settings ...
- 对C++指针的一个比喻
假如你身在上海,你的电脑出了一点问题,你解决不了,这时你想起了你的远在北京的朋友小D,此时小D打开了他的心爱的笔记本... c++中函数的参数传指针就像你用teamviewer与你的朋友小D建立连接, ...
- BZOJ 1726 [Usaco2006 Nov]Roadblocks第二短路:双向spfa【次短路】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1726 题意: 给你一个无向图,求次短路. 题解: 两种方法. 方法一: 一遍spfa,在s ...
- python-unittest单元测试框架
可以理解为是已经帮我们封装好的东东,可以完成执行用例\预期与实际结果的对比等. import unittest 封装好的单元测试框架,可以直接使用 编写的测试类的继承unittest.TestCase ...