appThumbnail.jsp 3.31 KB
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.weaver.formmodel.util.NumberHelper"%>
<%@ page import="com.weaver.formmodel.util.StringHelper"%>
<%@ include file="/mobilemode/init2.jsp"%>
<%
int appid = NumberHelper.string2Int(request.getParameter("appid"),0);
int appHomepageId = NumberHelper.string2Int(request.getParameter("appHomepageId"), -1);
String timestamp = StringHelper.null2String(request.getParameter("timestamp"));
%>

<script type="text/javascript">
	window.alert = function(){ };
	window.confirm = function() { };
	window.prompt = function() { };
</script>
<script src="/mobilemode/admin/dep/html2canvas/html2canvas.min.js" type="text/javascript"></script>
<jsp:include page="/mobilemode/mobile/view.html"></jsp:include>
<style>
	.page,
	.page-content {
		overflow: hidden !important;
	}
	.wev-comp-List.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-NList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-UrlList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-LargeList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-APIList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-Timelinr.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-HoriList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-Tree.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-RSSList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-DetailTable.wev-refreshing .wev-detailtable-content-wrapper {
		transform: none !important;
		-webkit-transform: none !important;
		min-height: auto !important;
	}
	.wev-refresh-loading{
		display: none !important;
	}
</style>
<canvas id="canvas"></canvas>
<script type="text/javascript">
	window.onThumbUpload = function () {};

	var appHomepageId = <%=appHomepageId %>;
	var isReadly = false;
	
	var v = setInterval(function(){
		if(typeof($load) != "undefined"){
			clearInterval(v);
			$load(function(){
				
				require("mUtil").pluginLoad("page_" + appHomepageId, function(){
					if(!isReadly){
						isReadly = true;
						setTimeout(screenshot, 1000);
					}
				});
				
			});
			
			setTimeout(function(){
				if(!isReadly){
					isReadly = true;
					screenshot();
				}
			}, 10000);
		}
	}, 300);
	
	function screenshot() {
		html2canvas($("#page_"+appHomepageId)[0], {
			useCORS: true,
			logging: false
		}).then(function(canvas) {
			var base64 = canvas.toDataURL('image/png');
			upload(base64).then(function () {
                window.onThumbUpload();
			});
		});
	}

	function upload(base64) {
		var fdata = new FormData();
		
		function dataURLtoBlob(dataurl) {
		    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
		        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
		    while (n--) {
		        u8arr[n] = bstr.charCodeAt(n);
		    }
		    return new Blob([u8arr], { type: mime });
		}
		
		fdata.append('appHomepageId', appHomepageId);
		fdata.append('thumbnail', dataURLtoBlob(base64));
		return $.ajax({
			url: "/api/mobilemode/admin/designer/saveAppHomepageThumbnail",
			data: fdata,
			type: 'post',
			processData: false,
			contentType: false,
			success: function(result) {
				result = JSON.parse(result);
				
				if(result.api_status && parent.require) {
					 parent.require('appdesigner').reloadThumbnail('S' + appHomepageId, result.data.thumbnail, "<%=timestamp%>");
				}
			}
		});
	}
</script>
</body>
</html>