2018-05-23 14:13:42 fifteen718 阅读数 1227
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27809 人正在学习 去看看 秦子恒

直接调用微信提供的接口即可:

WeixinJSBridge.call('closeWindow');

ps: 在微信开发者工具中可能会报错,提示该方法不被支持,不过在手机上该方法是没毛病的!

 

2019-03-11 17:03:08 xialong_927 阅读数 1998
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27809 人正在学习 去看看 秦子恒

最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回或者Android物理按键上一步的时候,将关闭页面。

微信公众号开发的时候,可能会出现这种需求:

微信公众号内指定某个网页在点击返回键时不回退到上一级,而是直接关闭微信浏览器窗口

解决方案:

方法一:使用微信网页开发,调用JS-SDK API,wx.closeWindow

实现步骤:

1、签名URL

//初始化微信JSAPI
function initWxJsApi(){
	//签名url,http://localhost/wx/jsp/test.html?sid=fse
	var url = window.document.location.href;
	ajaxSyncRequest(getContextPath() + "signUrl", {"url": url}, function(data){
		if(data.success){
			wx.config({  
		        debug: false,  
		        appId: data.sign.appId,  
		        timestamp: data.sign.timestamp,  
		        nonceStr: data.sign.nonceStr,  
		        signature: data.sign.signature,  
		        jsApiList : ['closeWindow']  
		    });
		    wx.error(function(res) {  
		        alert("出错了:" + res.errMsg);  
		    });
		    wx.ready(function() {  
		        wx.checkJsApi({  
		            jsApiList : ['closeWindow'],  
		            success : function(res) { 	
		            }  
		        });       
		        //点击返回键时,直接退出微信浏览器
		        onBackCloseWindow();
		    });
		}else{
			showDlg("签名url失败: " + data.msg);
		}
	});
}

2、wx.ready()中调用onBackCloseWindow();,函数如下:

//当点击返回键时,不返回到上一页,而是直接关闭微信浏览器
function onBackCloseWindow() {
	pushHistory();
    window.addEventListener("popstate", function(e) {
        //关闭当前浏览器
        wx.closeWindow();
    }, false);
    function pushHistory() {
        var state = {
            title: "title",
            url: "#"
        };
        window.history.pushState(state, "title", "#");
    }   
}

补充:

pushState

history.pushState(state, title, url) : 无刷新的向浏览器 历史最前方 加入一条记录。

  • state(any) 需要保存的数据,这个数据在触发popstate事件时保存在event.state上。
  • title(string):
  • url(string) 需要更改的url地址。

ps:pushState 需要至少两个参数。

popstate: 浏览器点击前进后退时触发的事件。event.state可以获取当前url下设置的state

另外获取pushState中设置的state不一定要在popstate事件中获取,直接history.state也可以拿到。

 

方法二:

以下方法无需授权、签名也可以

$(function(){
	setTimeout('WeixinJSBridge.call("closeWindow")', 1500);
});
//当点击返回键时,不返回到上一页,而是直接关闭微信浏览器
function onBackCloseWindow() {
	pushHistory();
    window.addEventListener("popstate", function(e) {
        //关闭当前浏览器
        WeixinJSBridge.call("closeWindow");
    }, false);
    function pushHistory() {
        var state = {
            title: "title",
            url: "#"
        };
        window.history.pushState(state, "title", "#");
    }   
}

完!!!

2018-02-10 17:08:34 weixin_37281289 阅读数 8679
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27809 人正在学习 去看看 秦子恒

此情况,是因为没有使用wx.navigateTo(){}做跳转而是用wx.redirectTo(){ }做跳转就会出现此情况.

同时使用wx.navigateTo(){}做跳转时,当跳转到二级页面后,微信导航栏中有的左边会自动出现一个返回按键,如果是用

wx.navigateTo(){}则没有.

2018-05-14 14:12:07 kxy17 阅读数 1223
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27809 人正在学习 去看看 秦子恒

最近在做微信公众号开发,开发过程中遇到了一个图片全屏预览,用微信JSSDK的previewImage({current: curImg, urls: imgUrls})接口写,后面发现点击图片的时候出现了两次预览,要后退两次才能退出,查了好久查不到原因,后面发现是因为图片 ,宽度大于一定值(我目前是260px),微信会自动把图片变成点击全屏预览,导致每次点击都触发了两次预览,

解决方案:

给图片设置 

pointer-events: none;

需要点击事件则给图片外面加层div,将点击事件放在div上即可,如在div上点击调用微信jssdk的图片预览接口

2017-10-27 11:25:34 qq_35893839 阅读数 421
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27809 人正在学习 去看看 秦子恒

最近在项目中调起微信分享返回后,activity走了ondestory(),不知道为什么会走,在几经波折之后发现是因为横竖屏改变了activity的生命周期,在清单文件中修改android:configChanges这个属性即可,再此记录一下,



android中的组件Activity在manifest.xml文件中可以指定参数android:ConfigChanges,用于捕获手机状态的改变。在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。

设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation” 


“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ 所在地区发生变化。
“touchscreen“ 触摸屏已经改变。(这不应该常发生。)
“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ 用户打开手机硬件键盘
“navigation“ 导航型发生了变化。(这不应该常发生。)
“orientation“ 设备旋转,横向显示和竖向显示模式切换。
“fontScale“ 全局字体大小缩放发生改变

对android:configChanges属性,一般认为有以下几点:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

但是,自从Android 3.2(API 13),在设置Activity的android:configChanges="orientation|keyboardHidden"后,还是一样会重新调用各个生命周期的。因为screen size也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设置"orientation",你还必须设置"ScreenSize"。
解决方法:
AndroidManifest.xml中设置android:configChanges="orientation|screenSize“

Docu

博文 来自: qq_33988065
没有更多推荐了,返回首页