first commit
1
share/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
a4e1cc5b-f799-4d63-b3d8-a5a0a6ee697e
|
||||
1
share/css/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
5fbc99a7-5a34-4357-af7b-4cbd2f093600
|
||||
10
share/css/clear.css
Normal file
@@ -0,0 +1,10 @@
|
||||
body,h1,h2,h3,h4,h5,h6,p,ul,li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
175
share/css/index.css
Normal file
@@ -0,0 +1,175 @@
|
||||
.line {
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
.app_header {
|
||||
width: 100%;
|
||||
/*background: linear-gradient(to top, #fb7299 0%, #fecfef 99%, #fecfef 100%);*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
background: url("../img/back.png");
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.app_header img {
|
||||
width: 85px;
|
||||
height: 85px;
|
||||
padding: 15px;
|
||||
background: #fff;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0px 0px 0px #fff;
|
||||
/* animation: breathe 1.5s ease infinite alternate; */
|
||||
margin-top: -100px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.slide {
|
||||
position: absolute;
|
||||
bottom: 50px;
|
||||
color: #ddd7d7;
|
||||
text-align: center;
|
||||
animation: slide 0.8s ease infinite alternate;
|
||||
}
|
||||
.slide p {
|
||||
font-size: 12px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.slide i {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
@keyframes slide {
|
||||
0% {
|
||||
bottom: 50px;
|
||||
}
|
||||
100% {
|
||||
bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes breathe {
|
||||
0% {
|
||||
box-shadow: 0px 0px 0px #fff;
|
||||
}
|
||||
100% {
|
||||
box-shadow: 0px 20px 70px #fff;
|
||||
}
|
||||
}
|
||||
.app_header .app_title {
|
||||
font-size: 28px;
|
||||
color: #fff;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.app_header span {
|
||||
font-size: 12px;
|
||||
color: #ddd7d7;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.app_download {
|
||||
background: #ececec;
|
||||
padding-top: 60px;
|
||||
padding-bottom: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
.down_button {
|
||||
padding: 13px 40px;
|
||||
background: linear-gradient(45deg, #fb7299 0%, #fecfef 99%, #fecfef 100%);
|
||||
margin-bottom: 30px;
|
||||
color: #fff;
|
||||
border-radius: 22px;
|
||||
}
|
||||
.down_button i {
|
||||
font-size: 18px;
|
||||
}
|
||||
#down_code {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
user-select: all;
|
||||
}
|
||||
.app_download p {
|
||||
font-size: 12px;
|
||||
margin-top: 13px;
|
||||
color: #c0c0c0;
|
||||
user-select: none;
|
||||
}
|
||||
.app_content {
|
||||
padding: 30px 15px;
|
||||
padding-bottom: 70px;
|
||||
}
|
||||
.app_content .title {
|
||||
font-size: 20px;
|
||||
margin-bottom: 10px;
|
||||
color: #4c4c50;
|
||||
font-weight: 600;
|
||||
}
|
||||
.screenshot {
|
||||
display: flex;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
.screenshot li {
|
||||
width: 230px;
|
||||
flex-shrink: 0;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.screenshot li img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.update li,
|
||||
.introduction li,
|
||||
.detailed li {
|
||||
font-size: 14px;
|
||||
color: #636366;
|
||||
margin-bottom: 4px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.update_tips {
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
.h5_version {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 68px;
|
||||
background: #fff;
|
||||
z-index: 9;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 5px 20px;
|
||||
box-sizing: border-box;
|
||||
border-top: 1px solid #e6e6e6;
|
||||
align-items: center;
|
||||
}
|
||||
.h5_version_l {
|
||||
display: flex;
|
||||
}
|
||||
.h5_version_l img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.l_title p {
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
}
|
||||
.l_title span {
|
||||
font-size: 13px;
|
||||
color: #8E9198;
|
||||
}
|
||||
.h5_version_r {
|
||||
background: linear-gradient(45deg, #fb7299 0%, #fecfef 99%, #fecfef 100%);
|
||||
color: #fff;
|
||||
padding: 9px 25px;
|
||||
font-size: 14px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
1
share/img/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
5fb2a505-5434-488a-8b5f-036bafeed621
|
||||
BIN
share/img/1.jpg
Normal file
|
After Width: | Height: | Size: 168 KiB |
BIN
share/img/10.jpg
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
share/img/11.jpg
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
share/img/2.jpg
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
share/img/3.jpg
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
share/img/4.jpg
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
share/img/5.jpg
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
share/img/6.jpg
Normal file
|
After Width: | Height: | Size: 165 KiB |
BIN
share/img/7.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
share/img/8.jpg
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
share/img/9.jpg
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
share/img/back.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
share/img/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
111
share/index.html
Normal file
@@ -0,0 +1,111 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="full-screen" content="yes">
|
||||
<meta name="x5-fullscreen" content="true">
|
||||
<meta name="x5-page-mode" content="app">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-touch-fullscreen" content="yes"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<script>/*@cc_on window.location.href="http://support.dmeng.net/upgrade-your-browser.html?referrer="+encodeURIComponent(window.location.href); @*/</script>
|
||||
<title>屁桃儿 - 专业的模特写真应用</title>
|
||||
<link rel="stylesheet" href="./css/clear.css">
|
||||
<link rel="stylesheet" href="./css/index.css">
|
||||
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2269051_gha251up7ku.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="app_header">
|
||||
<img src="./img/ic_launcher.png" alt="">
|
||||
<p class="app_title">屁桃儿</p>
|
||||
<span class="version_num">x.x.x</span>
|
||||
<span>22.6M / 2万+下载 / 5.7万个评论</span>
|
||||
<div class="slide">
|
||||
<p>下拉详情</p>
|
||||
<i class="iconfont icon-xiangxia1"></i>
|
||||
</div>
|
||||
<div class="back_logo"></div>
|
||||
</div>
|
||||
|
||||
<div class="app_download">
|
||||
<div class="down_button">
|
||||
|
||||
</div>
|
||||
<div id="QRCodeNone" style="display: none;"></div>
|
||||
<div id="down_code"></div>
|
||||
<p>扫码安装App</p>
|
||||
</div>
|
||||
|
||||
<div class="app_content">
|
||||
<div class="title">应用简介</div>
|
||||
<ul class="introduction line">
|
||||
<li>一款十分专业的模特写真App,倾心为您提供国内外共计约198万张的高清写真图,这里有几十种分类包括但不限于各种萝莉,制服系列,捆绑系列,尤物,性感女仆装等等等...满足您的一切喜好!</li>
|
||||
</ul>
|
||||
<div class="title">应用截图</div>
|
||||
<ul class="screenshot line">
|
||||
<li>
|
||||
<img src="./img/1.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/2.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/3.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/4.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/5.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/6.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/7.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/8.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/9.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/10.jpg" alt="">
|
||||
</li>
|
||||
<li>
|
||||
<img src="./img/11.jpg" alt="">
|
||||
</li>
|
||||
</ul>
|
||||
<div class="title">新版本特性</div>
|
||||
<ul class="update line">
|
||||
<li class="update_tips">最新版本发布啦,更新了一大波的好用功能,你还在等什么,赶快来下载体验吧!!</li>
|
||||
</ul>
|
||||
<div class="title">详细信息</div>
|
||||
<ul class="detailed line">
|
||||
<li>应用包名:com.picture.peach</li>
|
||||
<li class="update_time">更新时间:xxxx-xx-xx</li>
|
||||
<li>支持ROM:4.0.3+</li>
|
||||
<li>开发者名称:编码猿</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="h5_version">
|
||||
<div class="h5_version_l">
|
||||
<img src="./img/ic_launcher.png" alt="">
|
||||
<div class="l_title">
|
||||
<p>屁桃儿</p>
|
||||
<span>发现美的过程</span>
|
||||
</div>
|
||||
</div>
|
||||
<a target="_blank" class="h5_version_r">注 册</a>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
<script src="./js/jquery.min.js"></script>
|
||||
<script src="./js/qrcode.min.js"></script>
|
||||
<script src="./js/index.js"></script>
|
||||
</html>
|
||||
1
share/js/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
0dfca740-ff55-4fef-8542-754717f92fa5
|
||||
112
share/js/index.js
Normal file
@@ -0,0 +1,112 @@
|
||||
class index {
|
||||
constructor() {
|
||||
this.appUpdateInfo = {};
|
||||
this.iosDownApkUrl = "http://47.114.153.249/page/home.html";
|
||||
this.checkUpdateUrl = "http://47.114.153.249:3000/api/json/updateVersion";
|
||||
this.goToReg();
|
||||
this.getVersion();
|
||||
}
|
||||
|
||||
goToReg() {
|
||||
// 如果地址栏有 objectId,表示代理分享出来的链接,先删除下载区域
|
||||
if (this.GetQueryString("objectId") != null) {
|
||||
$(".app_download").remove()
|
||||
}
|
||||
|
||||
if (this.GetQueryString("objectId") == null) {
|
||||
$(".h5_version").remove()
|
||||
} else {
|
||||
$(".h5_version_r").click(() => {
|
||||
if (this.GetQueryString("objectId") == null) {
|
||||
location.href = "../page/reg.html"
|
||||
} else {
|
||||
location.href = `../page/reg.html?objectId=${this.GetQueryString("objectId")}`
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
getVersion() {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: this.checkUpdateUrl,
|
||||
success: (res) => {
|
||||
this.appUpdateInfo = res;
|
||||
// 设置app版本
|
||||
$(".version_num").text(this.appUpdateInfo.version);
|
||||
|
||||
// 设置按钮文字
|
||||
this.downloadApp() == "ios"
|
||||
? $(".down_button").append(`
|
||||
<i class="iconfont icon-ios"></i>
|
||||
<span>H5 访问</span>
|
||||
`)
|
||||
: $(".down_button").append(`
|
||||
<i class="iconfont icon-android"></i>
|
||||
<span>下载并安装</span>
|
||||
`);
|
||||
|
||||
// 点击安装事件
|
||||
this.downloadApp() == "ios"
|
||||
? $(".down_button").click(() => location.href = this.iosDownApkUrl)
|
||||
: $(".down_button").click(() => location.href = this.appUpdateInfo.downUrl);
|
||||
|
||||
// 生成二维码
|
||||
$(".app_download").length != 0 ? this.CreatedQrcode() : ''
|
||||
// 新版本特性
|
||||
this.appUpdateInfo.updateMsg.forEach((v,i) => {
|
||||
$(".update").append(`<li>${v}</li>`)
|
||||
});
|
||||
// 详细信息
|
||||
$(".detailed .update_time").text(`更新时间:${this.appUpdateInfo.updatedAt}`)
|
||||
},
|
||||
error: (err) => {
|
||||
throw new Error(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
CreatedQrcode() {
|
||||
let url = this.downloadApp() == "ios"
|
||||
? this.iosDownApkUrl
|
||||
: this.appUpdateInfo.downUrl;
|
||||
|
||||
new QRCode("QRCodeNone", {
|
||||
text: url,
|
||||
width: 128,
|
||||
height: 128,
|
||||
colorDark : "#000000",
|
||||
colorLight : "#ffffff",
|
||||
correctLevel : QRCode.CorrectLevel.H
|
||||
});
|
||||
$("#down_code").append(
|
||||
this.convertCanvasToImage($("canvas")[0])
|
||||
);
|
||||
}
|
||||
|
||||
convertCanvasToImage(canvas){
|
||||
var image = new Image();
|
||||
image.src = canvas.toDataURL("image/png");
|
||||
return image;
|
||||
}
|
||||
|
||||
downloadApp() {
|
||||
var u = navigator.userAgent;
|
||||
var ua = navigator.userAgent.toLowerCase();
|
||||
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
|
||||
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
|
||||
if (isiOS) {
|
||||
return 'ios';
|
||||
} else if (isAndroid) {
|
||||
return "android"
|
||||
}
|
||||
}
|
||||
|
||||
GetQueryString(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
var r = window.location.search.substr(1).match(reg);
|
||||
if (r != null) return decodeURIComponent(r[2]); return null;
|
||||
}
|
||||
}
|
||||
|
||||
new index()
|
||||