微信app关闭页面跳到主界面

时间:2015-02-05 13:44:32   收藏:0   阅读:938

大家好:

         今天遇到一个问题,整理了大半天!  微信app关闭页面跳到主界面:代码跟到家共享一下!

注意:

此方法只在手机上显示!

<span style="font-size:14px;"> WeixinJSBridge.invoke('closeWindow',{},function(res){
         });</span>

今天的问题是在前几天的文章后续添加的

<span style="font-size:14px;"><%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="/view/common/tags.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/> 
	<meta content="yes" name="apple-mobile-web-app-capable"/>
	<meta content="black" name="apple-mobile-web-app-status-bar-style"/>
	<meta content="telephone=no" name="format-detection"/>
	<meta content="no-cache" http-equiv="Cache-Control"/>
 <link rel="stylesheet" href="<%=request.getContextPath()%>/css/base.css" type="text/css"/>  
<title>卡解绑</title>
</head>
<body>
<input type="hidden" id ="cardno" name = "cardno" value="${cardno}">
<input type="hidden" id ="phone" name = "phone" value="${phone}">

 <div class="container">
   <div class="loss_report">
   	<dl class="report_dl">
		<dt>京医通卡号:</dt>
		<dd>${cardno}</dd>
		<dt>手机号码:</dt>
		<dd>${phone}</dd>
		<dt>验 证 码 :</dt>
		<dd>
		<input type="text" id="validateNumber" name ="validateNumber" value="" class="report_inp report_inp_bg report_inp40"/>
					<input name="ShowTime"id="ShowTime" type="button" value="获取验证码" onclick="time(this)" class="btn btn_submit btn_get_code" />
		</dd>
	</dl>
   </div>
	<span class="loss_btn"><a href="javascript:userInfo();" class="btn btn_submit" id="agreesubmit" name="agreesubmit">解绑</a></span>
	<p class="binding_success" style="display:none;">解绑成功!</p>	
	<a href="<%=request.getContextPath()%>/view/mobile/card/unbundling_principles.html" class="unbundling_explain">解绑原则说明</a>
</div>

<div class="pop_wrap" style="display:none;">
    <div class="bg_mask"></div>
    <div class="pop_content">
        <b class="pop_b01">确认解绑</b>
        <p>解绑后,您在  
        <span id = "datevalue" name = "datevalue" readonly="readonly"></span>         <!--  <input id = "datevalue" name = "datevalue" disabled="disabled"> -->
        以后才可绑定用其他证件办理的京医通卡,期间您只能绑定原证件办理的京医通卡。</p>
        <span class="btn_two"><a class="btn_pop btn_win50" href="javascript:;">取消</a><a class="btn_pop btn_win49" href="javascript:;">解绑</a></span>
    </div>
</div>

</body>


<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var _path = "<%=request.getContextPath()%>";
//页面加载事件
window.onload=function() //用window的onload事件,窗体加载完毕的时候
{
	var date = new Date();
	date.setMonth(date.getMonth() + 2);
	date = date.getFullYear() + '-' + (date.getMonth() == 0 ? 12 : date.getMonth()) + '-' + date.getDate();
	 $("#datevalue").text(date);
}

//手机验证码
var cTime = 59;
function validateMobile() {
	var phone = $("input[name='phone']").val(); 
	if (cTime == 59)
		$.post(_path + "/sendMessage/mobile/sendValidateNumber",
			{
			mobilePhone : phone
			},
			function(data) {
				
			});
}
//点击获取验证码 
function time(o) {
	var phone = $("input[name='phone']").val();
	var doc_height = $(document).height();
	$('.bg_mask').height(doc_height);
	
	if (phone == null || $.trim(phone) == "") {
		$('.pop_wrap').show();
		document.getElementById('errorMessage').innerHTML = '请您输入手机号';
		return false;
	}
	if (!(/^0?(13[0-9]|15[012356789]|18[012356789]|14[57])[0-9]{8}$/
			.test(phone))) {
		$('.pop_wrap').show();
		document.getElementById('errorMessage').innerHTML = '手机号码不正确';
		return false;
	}
	if (cTime == 59) {
		validateMobile();  //手机验证码 
		o.value = "获取验证码";
		cTime = 59;
		document.getElementById("phone").disabled=true;
	}
	if (cTime == 0) {
		o.removeAttribute("disabled");
		o.value = "获取验证码";
		cTime = 59;
		document.getElementById("phone").disabled=false;
	} else {
		o.setAttribute("disabled", true);
		o.value = "" + cTime + "秒";
		cTime--;
		setTimeout(function() {
			time(o)
		}, 1000)
	}
}
/**
 * 倒计时
 * @returns 
 */
function countDown() {
	window.setTimeout('countDown()', 1000);
	if (cTime >= 0)
		$("#ShowTime").val(cTime + "秒");
	cTime--;
	if (cTime < 0) {
		$("#ShowTime").val("获取验证码");
		$('#ShowTime').click(function() {
			//这里添加onclick后的事件,比如:
			$("#ShowTime").unbind("click");
			cTime = 59;
		});
		return false;
	}
}

//停3秒,跳转页面
 var i = 4 ;  
function showTime(){                                
   i-=1 ;  
   if(i   ==   1)  
   { 
	var url = _path + "/mobile/myBjMedicalCard/selectCardInfoList";
	window.location.href = url;
   }  
   window.setTimeout("showTime()",500);       
}  
function pageJump(){ 
	 i-=1 ;  
	   if(i   ==   1)  
	   { 
		 WeixinJSBridge.invoke('closeWindow',{},function(res){
         });
	   }  
	   window.setTimeout("pageJump()",500);      
	}  
//提交信息
function userInfo(){
var cardno = $("input[name='cardno']").val();
var phone = $("input[name='phone']").val();
var validateNumber = $("input[name='validateNumber']").val();
var fluge = true;	
	if (!(/^0?(13[0-9]|15[012356789]|18[012356789]|14[57])[0-9]{8}$/
			.test(phone))) {
		alert("手机号码不正确");
		fluge = false ;
	return false;
	}
	if (validateNumber === null || validateNumber == "") {
		alert("验证码不能为空");
		fluge = false ;
	return false;
	}
	if(fluge == true){
//先判断手机号跟验证码是否正确,再判断是否确认解绑
$.post(_path + "/sendMessage/mobile/validateFormNumber", {
			validateNumber : validateNumber,
			mobilePhone : phone
		}, function(data) {
			if (data.result == "1") {
				alert("手机号码变更,请重新获取验证码");
				return false;
			}
			if (data.result == "2") {
				alert("验证码不正确");
				return false;
			}
			if (data.result == "0") { 		//手机号码正确,验证码正确 
				//弹出确认解绑框
				 $(".pop_wrap").show();
				 $(".btn_win50").click( 	//点击取消,隐藏遮罩层
			     	function(){$(".pop_wrap").hide();}
			     );
				 $(".btn_win49").click(  	//点击解绑,隐藏遮罩层并post请求 卡解绑 
				     function(){ 
					 	$(".pop_wrap").hide(); //遮罩层隐藏
					 	document.getElementById("agreesubmit").href = "javascript:void(0)";  //点击解绑后,解绑按钮不可用
				 	 $.post(_path + "/mobile/cardManager/modifiedCardStatus", {  //卡 解绑
						 cardno : cardno 
						}, function(data) {
							if (data == "1") {
								  $.post(_path + "/mobile/cardManager/unbundlingQueryCardList", {  //卡解绑成功后,查询是否还存在卡数据 
									}, function(data1) {
										$(".binding_success").show();  //解除绑定成功!
										
										if (data1 == "1"){
											showTime();                    //此处必须跳转页面 
										}else{
											pageJump();                    //此处必须跳转页面 
										}
									})
								
							} else {
								alert("解除绑定失败");
							};
						});
				     }
				    
				 );
				
			}
		});
		
	}
}
</script>
</html></span>

<span style="font-size:14px;">package com.saohuobang.web.platform.bjmedicalcard.cardmanage.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.saohuobang.web.common.logging.UnifyLogger;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.po.CardInfo;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.po.TradeRecords;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.po.UserCard;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.po.UserInfo;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.po.WxUserInfo;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.service.inf.CardManageInf;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.service.inf.UserCardInf;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.service.inf.UserInfoInf;
import com.saohuobang.web.platform.bjmedicalcard.cardmanage.service.inf.WxUserInfoInf;
import com.saohuobang.web.platform.bjmedicalcard.common.conf.AlarmIdConfig;
import com.saohuobang.web.platform.bjmedicalcard.common.conf.LogIdConfig;
import com.saohuobang.web.platform.bjmedicalcard.common.exception.BussinessException;
import com.saohuobang.web.platform.bjmedicalcard.common.util.AppConfig;

/**
* @ClassName: CardUnbundlingController 
* @Description: (卡管理— 卡解绑) 
* @author zhangx
* @date 2015年1月26日 上午11:03:15 
 */
@Controller
@RequestMapping("/mobile/cardManager")
public class CardManagerController {
	@Autowired
	private CardManageInf cardManageInf; 	//卡管理
	@Autowired
	private UserInfoInf userInfoInf;    	//用户信息
	@Autowired
	private HttpSession httpSession;
	@Autowired
	private WxUserInfoInf wxUserInfoInf; 	//微信用户
	@Autowired
	private UserCardInf userCardInf;        
	
	private static Logger logger = Logger.getLogger(CardManagerController.class); //打印log日志
	
	/**
	* @Title: getUserPhone 
	* @Description: (根据京医通卡查询用户的电话)
	* @author zhangx
	* @param @param cardno
	* @return String 
	 */
	@RequestMapping("/getUserPhone")
	public String getUserPhone(
			HttpServletRequest request,
			@RequestParam(value = "cardno", required = true) String cardno   	//京医通卡
		   ,@RequestParam(value = "type", required = true) int type    		    // 路径 为 0: 卡挂失;1:卡解绑
			){
		try {
			UserInfo userInfo = userInfoInf.selectUserInfoByCardNo(cardno);		//根据京医通卡号,查询用户信息   t_user_info 与 t_user_card  相关联查询
			request.setAttribute("phone", userInfo.getPhone());
			request.setAttribute("cardno", cardno);
		} catch (Exception e) {
			e.printStackTrace();
			logger.error("根据根据京医通卡查询用户的电话出现异常,京医通卡号不能为空");
		}
		if(type == 0){ 								 //卡挂失
			return "/mobile/card/cardLossReport";  	 //返回数据,返回指定页面		
		}else{										 //卡解绑
			return "/mobile/card/cardUnbundling";  	 //返回数据,返回指定页面		
		}
						
	}
	
	/**
	 * 
	* @Title: modifiedCardStatus 
	* @Description: (卡管理—卡解绑)
	* @author zhangx
	* @param @param userid   //用户ID
	* @param @param cardno //京医通卡号
	* @param @return identification //标识 1: 修改成功,0:失败
	* @param @throws Exception 
	* @return Object 
	* @throws
	 */
	@RequestMapping("/modifiedCardStatus")
	@ResponseBody
	public String modifiedCardStatus(
		@RequestParam(value = "userid", required = false) String userid, 	//用户ID
		@RequestParam(value = "cardno", required = true) String cardno 		//京医通卡号
		) {

		Map<String, Object> modelMap = new HashMap<String, Object>();
		String  identification = null;

		Integer cardstatus = 0;  	//绑卡信息 t_user_card 修改状态   状态:0停用,1启用 (卡解绑)
		Integer cardtype = 2; 		//卡信息t_card_info 卡类型:0临时卡1实体卡2解绑卡(解绑)
		modelMap.put("cardstatus",cardstatus);
		modelMap.put("cardtype",cardtype);
		modelMap.put("userid",userid);
		modelMap.put("cardno",cardno);

		try {
			int stamp = cardManageInf.updateUnbundlingCard(modelMap);		//根据根据京医通卡号,修改卡状态
			if(stamp>0){
				identification = "1"; 	//修改成功
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 

		return identification;
	}
	/**
	 * 
	* @Title: unbundlingQueryCardList 
	* @Description: TODO (解绑后查询卡列表)
	* @author zhangx
	* @param @param model
	* @param @return 
	* @return ModelAndView 
	* @throws
	 */
	@RequestMapping( value ="/unbundlingQueryCardList", method = RequestMethod.POST)
	@ResponseBody
	public String unbundlingQueryCardList() {
		
		String wxOpenId = httpSession.getAttribute("wxOpenId").toString();         //获取session中的微信号
		WxUserInfo wxUserInfo = wxUserInfoInf.selectWxUserInfoByOpenId(wxOpenId);  //根据微信openid查询微信用户信息
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		List<UserCard> userCards = new ArrayList<UserCard>();
		String identification = null ;                                             //标识字段
		//判断是否和用户绑定
		if (wxUserInfo !=null) {
			map.put("userId", wxUserInfo.getUserId());
			map.put("cardstatus", 1);                                             //状态:启用
			map.put("inputType", "4");
			try {
				userCards = userCardInf.selectCardInfoListByUserId(map);          
			}catch (BussinessException ex){
				if (ex.getResultCode().getResultCode() == 1006) {
					UnifyLogger.error(LogIdConfig.BUSINESS_ERR, AlarmIdConfig.CARD_STATUS_ERR, ex);
				}
			}catch (Exception e) {
				e.printStackTrace();
			}
		}
		if(userCards.size() > 0){ //判断卡列表中是否存在数据 存在数据就返回 1  否则就返回 0
			identification = "1";
		}else{
			identification = "0";
		}
		return "0";
	}
}</span>


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!