日期:2025.9.1

分支:yijianlian
需求:
1.ui中去除AI字样
2.冗余代码删除
This commit is contained in:
level 2025-09-01 19:02:58 +08:00
parent 734dad63db
commit 7f4ae28afa
36 changed files with 56 additions and 3375 deletions

View File

@ -1,56 +0,0 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>连接中...</title>
<style>
body {
background-color: #262C45;
color: white;
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
.loading {
border: 4px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid #ffffff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<p id="connectionStatus">正在连接客服,右下角出现按钮后即可聊天...</p>
<div class="loading" id="loadingIcon"></div>
<script>
function updateStatus() {
var statusElement = document.getElementById("connectionStatus");
var loadingIcon = document.getElementById("loadingIcon");
statusElement.textContent = "已经连接,点击按钮开始聊天吧";
loadingIcon.style.display = "none";
clearInterval(loadingAnimation);
}
// 模拟连接的过程,在此之后调用 updateStatus 方法
// var loadingAnimation = setInterval(updateStatus, 3000); // 假设连接耗时为3秒
</script>
</body>
<script type="text/javascript">window.$crisp=[];window.CRISP_WEBSITE_ID="3c985c8a-5fe4-439f-ad40-bd26b905f92e";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();</script>
</html>

View File

@ -1,90 +0,0 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>连接中...</title>
<style>
body {
background-color: #262C45;
color: white;
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
.loading {
border: 4px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid #ffffff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<p id="connectionStatus">正在连接客服,右下角出现按钮后即可聊天...</p>
<p id="connectionStatus2">如果未出现按钮,请等待一分钟或者重新进入.</p>
<div class="loading" id="loadingIcon"></div>
</body>
<script>
(function(d,t) {
var BASE_URL="https://test.yingmaox.cc:8041";
var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=BASE_URL+"/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g,s);
g.onload=function(){
window.chatwootSDK.run({
websiteToken: 'hrRz6CyYCqM8KZEQ1W88bS6b',
baseUrl: BASE_URL
})
}
})(document,"script");
//自动拉起
const wootTargetNode = document.body;
const wootConfig = { attributes: true, childList: true, subtree: true };
let wootState=false;
const wootCallback = function(mutationsList, observer) {
for(const mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(node => {
if (node.nodeType === Node.ELEMENT_NODE) {if (node.id == 'chatwoot_live_chat_widget') { wootState=true;chatInit();}}
});
} else if (mutation.type === 'attributes' && mutation.attributeName === 'id') {
if (mutation.target.id == 'chatwoot_live_chat_widget') {wootState=true;chatInit();}
}
}
};
const observer = new MutationObserver(wootCallback);
observer.observe(wootTargetNode, wootConfig);
function chatInit(){
observer.disconnect();document.getElementsByClassName('woot-widget-bubble')[0].click();
}
</script>
<script>
function updateStatus() {
var statusElement = document.getElementById("connectionStatus");
var loadingIcon = document.getElementById("loadingIcon");
statusElement.textContent = "已经连接,点击按钮开始聊天吧";
loadingIcon.style.display = "none";
clearInterval(loadingAnimation);
}
// 模拟连接的过程,在此之后调用 updateStatus 方法
// var loadingAnimation = setInterval(updateStatus, 3000); // 假设连接耗时为3秒
</script>
</html>

View File

@ -1,60 +0,0 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Connecting...</title>
<style>
body {
background-color: #262C45;
color: white;
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
.loading {
border: 4px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid #ffffff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<p id="connectionStatus">Connecting to customer service, click the button in the bottom right corner to chat...</p>
<p id="connectionStatus2">If no button appears, please wait for one minute or re-enter.</p>
<div class="loading" id="loadingIcon"></div>
<script>
function updateStatus() {
var statusElement = document.getElementById("connectionStatus");
var loadingIcon = document.getElementById("loadingIcon");
statusElement.textContent = "Connected, click the button to start chatting";
loadingIcon.style.display = "none";
clearInterval(loadingAnimation);
}
// 模拟连接的过程,在此之后调用 updateStatus 方法
// var loadingAnimation = setInterval(updateStatus, 3000); // 假设连接耗时为3秒
</script>
</body>
<script type="text/javascript">window.$crisp=[];window.CRISP_WEBSITE_ID="c1e87f10-9628-488b-9fe2-61160c301f6e";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();</script>
</html>

View File

@ -1,60 +0,0 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>連接中...</title>
<style>
body {
background-color: #262C45;
color: white;
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
.loading {
border: 4px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid #ffffff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<p id="connectionStatus">正在連接客服,右下角出現按鈕後即可聊天 ...</p>
<p id="connectionStatus2">如果未出現按鈕,請等待一分鐘或者重新進入.</p>
<div class="loading" id="loadingIcon"></div>
<script>
function updateStatus() {
var statusElement = document.getElementById("connectionStatus");
var loadingIcon = document.getElementById("loadingIcon");
statusElement.textContent = "已經連接,點擊按鈕開始聊天吧";
loadingIcon.style.display = "none";
clearInterval(loadingAnimation);
}
// 模拟连接的过程,在此之后调用 updateStatus 方法
// var loadingAnimation = setInterval(updateStatus, 3000); // 假设连接耗时为3秒
</script>
</body>
<script type="text/javascript">window.$crisp=[];window.CRISP_WEBSITE_ID="c1e87f10-9628-488b-9fe2-61160c301f6e";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();</script>
</html>

View File

@ -1,132 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">服务条款</h2>
<hr/>
<p class="font_content">为维护双方利益,根据相关法律、法规的规定,双方在平等、自愿、公平、诚信的基础上,加速器科技(以下简称“加速器”)旗下产品加速器客户端(以下简称“加速器”)就用户购买跨境互联网虚拟专用网络服务(以下简称“服务”)的相关事宜达成如下协议,请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款、法律适用和争议解决条款,您应重点阅读。如您对协议有任何疑问,可向我方平台客服咨询,协议如下:</p>
<p class="font_content">a) Our goal is to provide quality service to all customers. Please read these terms of service carefully before you access the site or the service. <br/>
</p>
<p class="font_content">b) These Terms of Service (“the Terms”) govern your use of the 一键连加速器 and the associated website domains (the “Site”) and related service (the “Services”), which are owned and operated by the 一键连加速器 Team (“一键连加速器,” “our”, “we” or “us”). The Terms constitute a legally binding agreement (the “Agreement”) between you and the 一键连 加速器 Team.</p>
<p class="font_subtitle">
一键连加速器 Service
</p>
<p class="font_content">a) You understand that we are providing you with a virtual private network (or "加速器") service, which includes, but is not limited to, the use of servers, transport, routers, IP addresses and other equipment and protocols to transmit information over our network (the "System"). You agree to abide by the Terms with respect to your use of the Service.</p>
<p class="font_subtitle">
Usage Policy
</p>
<p class="font_content">a) BY USING 一键连 加速器 SERVICE (the "Service") YOU AGREE:</p>
<p class="font_content">a) NOT to use the system for sending spam, port scanning, scanning for open proxies or open relays, sending opt-in email, unsolicited email or any type or version of email sent in large quantities even if the email is ultimately sent off of another server.</p>
<p class="font_content">b) NOT to launch any pop-ups from our service.</p>
<p class="font_content">c) NOT to attack in any way shape or form any other computer or network while on our service.</p>
<p class="font_content">d) NOT to use the service for things that could hurt our network or other people.</p>
<p class="font_content">b) It is the user responsibility to know and comprehend any and all relevant laws related to any jurisdiction or venue that concerns you and your actions. 一键连 加速器 is not liable in any way or form for actions done by its users including a criminal liability and a civil liability for harm executed or not executed beyond any money paid to 一键连 加速器 for its services by a concrete individual.</p>
<p class="font_content">c) Violations of this Usage Policy or the Terms may result in termination of your account, without any refund of amounts previously paid for the Service. Additionally, you may be held responsible for any and all damages incurred to 一键连 加速器, including any amounts charged by any outside entity due to said violation(s), including attorneys fees and costs without limitation.</p>
<p class="font_content">d) 一键连 加速器 enables you to download software, software updates or patches, or other utilities and tools onto your mobile phones or Internet-enabled device. 一键连 加速器 ("the Software") grants to you a nonexclusive, limited license to use the Software solely for the purpose stated by 一键连 加速器 at the time the Software is made available to you and in accordance with these Terms. Modifying, distributing to unauthorized parties, reverse engineering, or otherwise using the Software in any way not expressly authorized by 一键连 加速器, is strictly prohibited.</p>
<p class="font_subtitle">
Disclaimers
</p>
<p class="font_content">a) We strive to prevent interruptions to the Site and the Service. However, these are provided on an “as is” and “as available” basis, and we do not warrant, either expressly or by implication, the accuracy of any materials or information provided through the Site or Service, or their suitability for any particular purpose.</p>
<p class="font_content">b) Actual service coverage, speeds, locations and quality may vary. The Service will attempt to be available at all times except for limited periods for maintenance and repair. However the Service may be subject to unavailability for a variety of factors beyond our control including emergencies, third party service failures, transmission, equipment or network problems or limitations, interference, signal strength, and may be interrupted, refused, limited or curtailed.</p>
<p class="font_content">c) We do not make any warranty that the Service will meet your requirements, or that it will be uninterrupted, timely, secure, or error free, or that defects, if any, will be corrected. You acknowledge that you access the Site and the Service at your own discretion and risk.</p>
<p class="font_content">d) We are not responsible for data, messages or pages lost, not delivered, delayed or misdirected because of interruptions or performance issues with the Service or communications services or networks (e.g., T-1 lines or the Internet). We may impose usage or Service limits, suspend Service, or block certain kinds of usage in our sole discretion to protect users or the Service. Network speed is an estimate and is no indication of the speed at which your or the Service sends or receives data. Actual network speed will vary based on configuration, compression, network congestion and other factors. The accuracy and timeliness of data received is not guaranteed; delays or omissions may occur.</p>
<p class="font_content">e) We do not log any user activity (sites visited, DNS lookups, emails etc.) We only log access attempts to our servers for the purposes of troubleshooting and improving the Services. We do not get involved in any form of censorship. We do not give your personal info to any third parties.</p>
<p class="font_subtitle">
第一条 服务范围
</p>
<p class="font_content">1.1 加速器向申请主体(以下简称“用户”)提供服务,用户按照本协议约定的条款接受服务。</p>
<p class="font_subtitle">
第二条 账户注册及用户资料
</p>
<p class="font_content">2.1 用户下载加速器客户端后,首次使用手机号和验证码登录即为注册;</p>
<p class="font_content">2.2 用户在使用加速器提供的服务时,应使用真实、准确的手机号进行注册或登录,不得冒用他人手机号,若因冒用他人手机号而产生了纠纷或损失,由客户自行承担;</p>
<p class="font_content">2.3 加速器对用户资料依法保密,但为建立与用户沟通渠道,改善服务工作,加速器可以使用本协议涉及的用户资料;</p>
<p class="font_content">2.4 用户应妥善保管手机号和验证码,因用户原因造成的用户验证码遗失或被他人获取造成的责任、损失,加速器不予承担。</p>
<p class="font_subtitle">
第三条 业务使用
</p>
<p class="font_content">3.1 用户确认开始使用/注册程序使用我方平台服务前,应当具备中华人民共和国法律规定的与您行为相适应的民事行为能力。若用户不具备前述与用户行为相适应的民事行为能力,则应获得监护人的知情同意,用户及用户的监护人应依照法律规定承担因此而导致的相应的责任。如果用户是未成年人,请在用户的监护人同意和指导下访问和/或使用我方服务;</p>
<p class="font_content">3.2 用户使用服务时,应遵守中华人民共和国的法律、法规、规章等相关规定;</p>
<p class="font_content">3.3 加速器提供的服务仅限成功注册并缴费的用户使用,若因用户将服务提供给第三方使用等而产生的责任及损失,由用户自行承担;</p>
<p class="font_content">3.4 官网公布的方式,为下载、注册、登录、使用我方服务的唯一合法途径,您通过其他任何方式获取的我方服务均为非法取得,我方概不承认其效力,一经发现,我方有权立即做出删除、取消、暂停、封号等处理,任何因此导致的一切不利后果均由用户自行承担。我方保留向相关责任主体追究法律责任的权利。</p>
<p class="font_subtitle">
第四条 费用标准和费用交纳
</p>
<p class="font_content">4.1 服务的计费周期为:用户首次登录时系统默认赠送 24 小时免费体验,如需续期,则按官网及客户端展示的租期费用执行,具体租期分为 1 个月、6 个月和 1 年,支付方式可选择微信、支付宝等;</p>
<p class="font_content">4.2 如有政策调整,自调整时间起按新标准执行。</p>
<p class="font_content">4.3 租期服务期限以用户自行选择并支付相应费用的期限为准,租期服务到期后,加速器将停止继续向用户提供相关服务;</p>
<p class="font_subtitle">
第五条 服务质量与用户服务
</p>
<p class="font_content">5.1 加速器会在官网等公布相关事宜的服务项目、服务时限、服务范围、使用规则、交费规定等内容。</p>
<p class="font_content">5.2 加速器负责向用户提供加速器客户端的下载、安装、注册、登录、使用等方面的咨询服务;</p>
<p class="font_content">5.3 因加速器原因造成通信障碍,且不能修复的,加速器免收故障期间的服务费,按天计算(另有约定的除外)。加速器不赔偿因故障造成的其他损失。故障时间的计算,以加速器接到用户申告或加速器查出障碍的时间起至恢复使用为止。</p>
<p class="font_subtitle">
第六条 协议中止和解除
</p>
<p class="font_content">6.1 本协议有效期与用户购买的服务时长一致。</p>
<p class="font_content">6.2 用户有下列情形之一的,加速器可以终止服务并不承担责任,已收取的费用不做退回:</p>
<p class="font_content">1用户违反本协议约定我方依据违约条款终止本协议的</p>
<p class="font_content">2用户转借账号、盗用他人账号、发布违禁内容和信息、骗取他人财物、采取不正当手段谋利等行为我方依据我方平台规则对您的账号予以查封的</p>
<p class="font_content">3除上述情形外因用户多次违反我方平台规则相关规定且情节严重我方依据我方平台规则对您的账户予以查封的</p>
<p class="font_content">4用户在我方平台有侵犯他人合法权益或其他严重违法违约行为的</p>
<p class="font_content">5其它根据相关法律法规我方应当终止服务的情况。</p>
<p class="font_subtitle">
第七条 不可抗力及免责
</p>
<p class="font_content">7.1 由于不可抗力,如战争、电力故障,罢工,暴乱、自然灾害等,鉴于互联网的特殊性,不可抗力还包括黑客攻击、运营商网络通讯中断及其他非因加速器过错产生的系统故障等导致本协议不能履行的,加速器均无需承担违约责任。</p>
<p class="font_content">7.2 如政府、司法行政机关等相关管理部门提出要求,暂停或终止提供相应服务,加速器不承担任何责任。</p>
<p class="font_subtitle">
第八条 争议解决
</p>
<p class="font_content">8.1 所有因本协议引起的或与本协议有关的争议,本着互让互利的原则,通过协商解决。协商不成的,双方也可请求有管辖权的人民法院对所争议的事项做出裁决。</p>
<p class="font_subtitle">
第九条 用户服务协议变更
</p>
<p class="font_content">9.1 加速器更新用户服务协议、隐私权政策及相关平台规则(统称“服务协议”),届时协议更新会通过官网提示、短信推送或客户端公告等方式通知和提醒用户注意。 服务协议变更后,若用户继续使用加速器服务,即表示用户同意接受加速器更新后的服务协议。若用户不同意变更后的服务协议,请用户停止使用加速器服务。</p>
<p class="font_subtitle">
第十条 附则
</p>
<p class="font_content">10.1 本协议自订立、生效、解释、修订、补充、终止、执行与争议解决均适用中华人民共和国法律;如法律无相关规定的,参照商业惯例及/或行业惯例;</p>
<p class="font_content">10.2 加速器保留因技术进步或国家政策变动等原因对服务做出调整的权利,但调整时应提前告知用户并提供相应解决方案;</p>
<p class="font_content">10.3 加速器可以采用电话、互联网等渠道进行业务公告或业务通知;</p>
<p class="font_content">10.4 用户下载并注册加速器客户端时即表示已默认同意本服务协议,此服务协议自用户注册之日起生效;</p>
<p class="font_content">10.5 本协议任一条款被视为废止、无效或不可执行,该条应视为可分的且并不影响本协议其余条款的有效性及可执行性。</p><br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,132 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">服务条款</h2>
<hr/>
<p class="font_content">为维护双方利益,根据相关法律、法规的规定,双方在平等、自愿、公平、诚信的基础上,加速器科技(以下简称“加速器”)旗下产品加速器客户端(以下简称“加速器”)就用户购买跨境互联网虚拟专用网络服务(以下简称“服务”)的相关事宜达成如下协议,请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款、法律适用和争议解决条款,您应重点阅读。如您对协议有任何疑问,可向我方平台客服咨询,协议如下:</p>
<p class="font_content">a) Our goal is to provide quality service to all customers. Please read these terms of service carefully before you access the site or the service. <br/>
</p>
<p class="font_content">b) These Terms of Service (“the Terms”) govern your use of the 八爪鱼加速器 and the associated website domains (the “Site”) and related service (the “Services”), which are owned and operated by the 八爪鱼加速器 Team (“八爪鱼加速器,” “our”, “we” or “us”). The Terms constitute a legally binding agreement (the “Agreement”) between you and the 八爪鱼 加速器 Team.</p>
<p class="font_subtitle">
八爪鱼加速器 Service
</p>
<p class="font_content">a) You understand that we are providing you with a virtual private network (or "加速器") service, which includes, but is not limited to, the use of servers, transport, routers, IP addresses and other equipment and protocols to transmit information over our network (the "System"). You agree to abide by the Terms with respect to your use of the Service.</p>
<p class="font_subtitle">
Usage Policy
</p>
<p class="font_content">a) BY USING 八爪鱼 加速器 SERVICE (the "Service") YOU AGREE:</p>
<p class="font_content">a) NOT to use the system for sending spam, port scanning, scanning for open proxies or open relays, sending opt-in email, unsolicited email or any type or version of email sent in large quantities even if the email is ultimately sent off of another server.</p>
<p class="font_content">b) NOT to launch any pop-ups from our service.</p>
<p class="font_content">c) NOT to attack in any way shape or form any other computer or network while on our service.</p>
<p class="font_content">d) NOT to use the service for things that could hurt our network or other people.</p>
<p class="font_content">b) It is the user responsibility to know and comprehend any and all relevant laws related to any jurisdiction or venue that concerns you and your actions. 八爪鱼 加速器 is not liable in any way or form for actions done by its users including a criminal liability and a civil liability for harm executed or not executed beyond any money paid to 八爪鱼 加速器 for its services by a concrete individual.</p>
<p class="font_content">c) Violations of this Usage Policy or the Terms may result in termination of your account, without any refund of amounts previously paid for the Service. Additionally, you may be held responsible for any and all damages incurred to 八爪鱼 加速器, including any amounts charged by any outside entity due to said violation(s), including attorneys fees and costs without limitation.</p>
<p class="font_content">d) 八爪鱼 加速器 enables you to download software, software updates or patches, or other utilities and tools onto your mobile phones or Internet-enabled device. 八爪鱼 加速器 ("the Software") grants to you a nonexclusive, limited license to use the Software solely for the purpose stated by 八爪鱼 加速器 at the time the Software is made available to you and in accordance with these Terms. Modifying, distributing to unauthorized parties, reverse engineering, or otherwise using the Software in any way not expressly authorized by 八爪鱼 加速器, is strictly prohibited.</p>
<p class="font_subtitle">
Disclaimers
</p>
<p class="font_content">a) We strive to prevent interruptions to the Site and the Service. However, these are provided on an “as is” and “as available” basis, and we do not warrant, either expressly or by implication, the accuracy of any materials or information provided through the Site or Service, or their suitability for any particular purpose.</p>
<p class="font_content">b) Actual service coverage, speeds, locations and quality may vary. The Service will attempt to be available at all times except for limited periods for maintenance and repair. However the Service may be subject to unavailability for a variety of factors beyond our control including emergencies, third party service failures, transmission, equipment or network problems or limitations, interference, signal strength, and may be interrupted, refused, limited or curtailed.</p>
<p class="font_content">c) We do not make any warranty that the Service will meet your requirements, or that it will be uninterrupted, timely, secure, or error free, or that defects, if any, will be corrected. You acknowledge that you access the Site and the Service at your own discretion and risk.</p>
<p class="font_content">d) We are not responsible for data, messages or pages lost, not delivered, delayed or misdirected because of interruptions or performance issues with the Service or communications services or networks (e.g., T-1 lines or the Internet). We may impose usage or Service limits, suspend Service, or block certain kinds of usage in our sole discretion to protect users or the Service. Network speed is an estimate and is no indication of the speed at which your or the Service sends or receives data. Actual network speed will vary based on configuration, compression, network congestion and other factors. The accuracy and timeliness of data received is not guaranteed; delays or omissions may occur.</p>
<p class="font_content">e) We do not log any user activity (sites visited, DNS lookups, emails etc.) We only log access attempts to our servers for the purposes of troubleshooting and improving the Services. We do not get involved in any form of censorship. We do not give your personal info to any third parties.</p>
<p class="font_subtitle">
第一条 服务范围
</p>
<p class="font_content">1.1 加速器向申请主体(以下简称“用户”)提供服务,用户按照本协议约定的条款接受服务。</p>
<p class="font_subtitle">
第二条 账户注册及用户资料
</p>
<p class="font_content">2.1 用户下载加速器客户端后,首次使用手机号和验证码登录即为注册;</p>
<p class="font_content">2.2 用户在使用加速器提供的服务时,应使用真实、准确的手机号进行注册或登录,不得冒用他人手机号,若因冒用他人手机号而产生了纠纷或损失,由客户自行承担;</p>
<p class="font_content">2.3 加速器对用户资料依法保密,但为建立与用户沟通渠道,改善服务工作,加速器可以使用本协议涉及的用户资料;</p>
<p class="font_content">2.4 用户应妥善保管手机号和验证码,因用户原因造成的用户验证码遗失或被他人获取造成的责任、损失,加速器不予承担。</p>
<p class="font_subtitle">
第三条 业务使用
</p>
<p class="font_content">3.1 用户确认开始使用/注册程序使用我方平台服务前,应当具备中华人民共和国法律规定的与您行为相适应的民事行为能力。若用户不具备前述与用户行为相适应的民事行为能力,则应获得监护人的知情同意,用户及用户的监护人应依照法律规定承担因此而导致的相应的责任。如果用户是未成年人,请在用户的监护人同意和指导下访问和/或使用我方服务;</p>
<p class="font_content">3.2 用户使用服务时,应遵守中华人民共和国的法律、法规、规章等相关规定;</p>
<p class="font_content">3.3 加速器提供的服务仅限成功注册并缴费的用户使用,若因用户将服务提供给第三方使用等而产生的责任及损失,由用户自行承担;</p>
<p class="font_content">3.4 官网公布的方式,为下载、注册、登录、使用我方服务的唯一合法途径,您通过其他任何方式获取的我方服务均为非法取得,我方概不承认其效力,一经发现,我方有权立即做出删除、取消、暂停、封号等处理,任何因此导致的一切不利后果均由用户自行承担。我方保留向相关责任主体追究法律责任的权利。</p>
<p class="font_subtitle">
第四条 费用标准和费用交纳
</p>
<p class="font_content">4.1 服务的计费周期为:用户首次登录时系统默认赠送 24 小时免费体验,如需续期,则按官网及客户端展示的租期费用执行,具体租期分为 1 个月、6 个月和 1 年,支付方式可选择微信、支付宝等;</p>
<p class="font_content">4.2 如有政策调整,自调整时间起按新标准执行。</p>
<p class="font_content">4.3 租期服务期限以用户自行选择并支付相应费用的期限为准,租期服务到期后,加速器将停止继续向用户提供相关服务;</p>
<p class="font_subtitle">
第五条 服务质量与用户服务
</p>
<p class="font_content">5.1 加速器会在官网等公布相关事宜的服务项目、服务时限、服务范围、使用规则、交费规定等内容。</p>
<p class="font_content">5.2 加速器负责向用户提供加速器客户端的下载、安装、注册、登录、使用等方面的咨询服务;</p>
<p class="font_content">5.3 因加速器原因造成通信障碍,且不能修复的,加速器免收故障期间的服务费,按天计算(另有约定的除外)。加速器不赔偿因故障造成的其他损失。故障时间的计算,以加速器接到用户申告或加速器查出障碍的时间起至恢复使用为止。</p>
<p class="font_subtitle">
第六条 协议中止和解除
</p>
<p class="font_content">6.1 本协议有效期与用户购买的服务时长一致。</p>
<p class="font_content">6.2 用户有下列情形之一的,加速器可以终止服务并不承担责任,已收取的费用不做退回:</p>
<p class="font_content">1用户违反本协议约定我方依据违约条款终止本协议的</p>
<p class="font_content">2用户转借账号、盗用他人账号、发布违禁内容和信息、骗取他人财物、采取不正当手段谋利等行为我方依据我方平台规则对您的账号予以查封的</p>
<p class="font_content">3除上述情形外因用户多次违反我方平台规则相关规定且情节严重我方依据我方平台规则对您的账户予以查封的</p>
<p class="font_content">4用户在我方平台有侵犯他人合法权益或其他严重违法违约行为的</p>
<p class="font_content">5其它根据相关法律法规我方应当终止服务的情况。</p>
<p class="font_subtitle">
第七条 不可抗力及免责
</p>
<p class="font_content">7.1 由于不可抗力,如战争、电力故障,罢工,暴乱、自然灾害等,鉴于互联网的特殊性,不可抗力还包括黑客攻击、运营商网络通讯中断及其他非因加速器过错产生的系统故障等导致本协议不能履行的,加速器均无需承担违约责任。</p>
<p class="font_content">7.2 如政府、司法行政机关等相关管理部门提出要求,暂停或终止提供相应服务,加速器不承担任何责任。</p>
<p class="font_subtitle">
第八条 争议解决
</p>
<p class="font_content">8.1 所有因本协议引起的或与本协议有关的争议,本着互让互利的原则,通过协商解决。协商不成的,双方也可请求有管辖权的人民法院对所争议的事项做出裁决。</p>
<p class="font_subtitle">
第九条 用户服务协议变更
</p>
<p class="font_content">9.1 加速器更新用户服务协议、隐私权政策及相关平台规则(统称“服务协议”),届时协议更新会通过官网提示、短信推送或客户端公告等方式通知和提醒用户注意。 服务协议变更后,若用户继续使用加速器服务,即表示用户同意接受加速器更新后的服务协议。若用户不同意变更后的服务协议,请用户停止使用加速器服务。</p>
<p class="font_subtitle">
第十条 附则
</p>
<p class="font_content">10.1 本协议自订立、生效、解释、修订、补充、终止、执行与争议解决均适用中华人民共和国法律;如法律无相关规定的,参照商业惯例及/或行业惯例;</p>
<p class="font_content">10.2 加速器保留因技术进步或国家政策变动等原因对服务做出调整的权利,但调整时应提前告知用户并提供相应解决方案;</p>
<p class="font_content">10.3 加速器可以采用电话、互联网等渠道进行业务公告或业务通知;</p>
<p class="font_content">10.4 用户下载并注册加速器客户端时即表示已默认同意本服务协议,此服务协议自用户注册之日起生效;</p>
<p class="font_content">10.5 本协议任一条款被视为废止、无效或不可执行,该条应视为可分的且并不影响本协议其余条款的有效性及可执行性。</p><br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,132 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">Service Terms</h2>
<hr/>
<p class="font_content">In order to safeguard the interests of both parties, according to the provisions of relevant laws and regulations, on the basis of equality, voluntariness, fairness and integrity, the 加速器 client (hereinafter referred to as "加速器"), a product of 加速器 Technology (hereinafter referred to as "加速器"), has reached the following agreement on matters related to users' purchase of cross-border Internet virtual private network services (hereinafter referred to as "services"). You must carefully read and fully understand the contents of each clause, especially the clauses on exemption or limitation of liability, application of law and dispute resolution, which you should focus on. If you have any questions about the agreement, you can consult our platform customer service. The agreement is as follows:</p>
<p class="font_content">a) Our goal is to provide quality service to all customers. Please read these terms of service carefully before you access the site or the service. <br/>
</p>
<p class="font_content">b) These Terms of Service (“the Terms”) govern your use of the 加速器 and the associated website domains (the “Site”) and related service (the “Services”), which are owned and operated by the 加速器 Team (“加速器,” “our”, “we” or “us”). The Terms constitute a legally binding agreement (the “Agreement”) between you and the 加速器 Team.</p>
<p class="font_subtitle">
加速器 Service
</p>
<p class="font_content">a) You understand that we are providing you with a virtual private network (or "加速器") service, which includes, but is not limited to, the use of servers, transport, routers, IP addresses and other equipment and protocols to transmit information over our network (the "System"). You agree to abide by the Terms with respect to your use of the Service.</p>
<p class="font_subtitle">
Usage Policy
</p>
<p class="font_content">a) BY USING 加速器 SERVICE (the "Service") YOU AGREE:</p>
<p class="font_content">a) NOT to use the system for sending spam, port scanning, scanning for open proxies or open relays, sending opt-in email, unsolicited email or any type or version of email sent in large quantities even if the email is ultimately sent off of another server.</p>
<p class="font_content">b) NOT to launch any pop-ups from our service.</p>
<p class="font_content">c) NOT to attack in any way shape or form any other computer or network while on our service.</p>
<p class="font_content">d) NOT to use the service for things that could hurt our network or other people.</p>
<p class="font_content">b) It is the user responsibility to know and comprehend any and all relevant laws related to any jurisdiction or venue that concerns you and your actions. 加速器 is not liable in any way or form for actions done by its users including a criminal liability and a civil liability for harm executed or not executed beyond any money paid to 加速器 for its services by a concrete individual.</p>
<p class="font_content">c) Violations of this Usage Policy or the Terms may result in termination of your account, without any refund of amounts previously paid for the Service. Additionally, you may be held responsible for any and all damages incurred to 加速器, including any amounts charged by any outside entity due to said violation(s), including attorneys fees and costs without limitation.</p>
<p class="font_content">d) 加速器 enables you to download software, software updates or patches, or other utilities and tools onto your mobile phones or Internet-enabled device. 加速器 ("the Software") grants to you a nonexclusive, limited license to use the Software solely for the purpose stated by 加速器 at the time the Software is made available to you and in accordance with these Terms. Modifying, distributing to unauthorized parties, reverse engineering, or otherwise using the Software in any way not expressly authorized by 加速器, is strictly prohibited.</p>
<p class="font_subtitle">
Disclaimers
</p>
<p class="font_content">a) We strive to prevent interruptions to the Site and the Service. However, these are provided on an “as is” and “as available” basis, and we do not warrant, either expressly or by implication, the accuracy of any materials or information provided through the Site or Service, or their suitability for any particular purpose.</p>
<p class="font_content">b) Actual service coverage, speeds, locations and quality may vary. The Service will attempt to be available at all times except for limited periods for maintenance and repair. However the Service may be subject to unavailability for a variety of factors beyond our control including emergencies, third party service failures, transmission, equipment or network problems or limitations, interference, signal strength, and may be interrupted, refused, limited or curtailed.</p>
<p class="font_content">c) We do not make any warranty that the Service will meet your requirements, or that it will be uninterrupted, timely, secure, or error free, or that defects, if any, will be corrected. You acknowledge that you access the Site and the Service at your own discretion and risk.</p>
<p class="font_content">d) We are not responsible for data, messages or pages lost, not delivered, delayed or misdirected because of interruptions or performance issues with the Service or communications services or networks (e.g., T-1 lines or the Internet). We may impose usage or Service limits, suspend Service, or block certain kinds of usage in our sole discretion to protect users or the Service. Network speed is an estimate and is no indication of the speed at which your or the Service sends or receives data. Actual network speed will vary based on configuration, compression, network congestion and other factors. The accuracy and timeliness of data received is not guaranteed; delays or omissions may occur.</p>
<p class="font_content">e) We do not log any user activity (sites visited, DNS lookups, emails etc.) We only log access attempts to our servers for the purposes of troubleshooting and improving the Services. We do not get involved in any form of censorship. We do not give your personal info to any third parties.</p>
<p class="font_subtitle">
Article 1 Service Scope
</p>
<p class="font_content">1.1 加速器 provides services to the applicant (hereinafter referred to as the "user"), and the user accepts the services in accordance with the terms agreed upon in this agreement.</p>
<p class="font_subtitle">
Article 2 Account Registration and User Information
</p>
<p class="font_content">2.1 After downloading the 加速器 client, the user logs in for the first time using their phone number and verification code, which is considered registration;</p>
<p class="font_content">2.2 When using the services provided by 加速器, users should register or log in using a real and accurate mobile phone number, and are not allowed to use someone else's mobile phone number. If disputes or losses arise due to the use of someone else's mobile phone number, the customer shall bear the responsibility on their own;</p>
<p class="font_content">2.3 加速器 shall keep user information confidential in accordance with the law, but in order to establish communication channels with users and improve service work, 加速器 may use the user information involved in this agreement;</p>
<p class="font_content">2.4 Users should properly keep their phone numbers and verification codes. 加速器 will not be held responsible for any loss or damage caused by the loss or acquisition of the user's verification code due to user reasons.</p>
<p class="font_subtitle">
Article 3 Business Use
</p>
<p class="font_content">3.1 Before the user confirms the start of using/registering the program to use our platform services, they should have the civil capacity required by the laws of the People's Republic of China that is appropriate for their behavior. If the user does not have the civil capacity corresponding to the user's behavior as mentioned above, the informed consent of the guardian should be obtained, and the user and the user's guardian should bear the corresponding responsibilities in accordance with the law. If the user is a minor, please access and/or use our services with the consent and guidance of the user's guardian;</p>
<p class="font_content">3.2 Users shall comply with the relevant laws, regulations, rules and other provisions of the People's Republic of China when using the service;</p>
<p class="font_content">3.3 The services provided by 加速器 are only available to users who have successfully registered and paid for them. If any liability or loss occurs due to the user providing the services to a third party, the user shall bear it on their own;</p>
<p class="font_content">3.4 The method of publication on the official website is the only legal way to download, register, log in, and use our services. Any other means by which you obtain our services are illegal and we do not recognize their validity. Once discovered, we have the right to immediately take measures such as deletion, cancellation, suspension, account suspension, etc. Any adverse consequences resulting from this shall be borne by the user. We reserve the right to pursue legal responsibility against the relevant responsible parties.</p>
<p class="font_subtitle">
Article 4 Fee Standards and Payment
</p>
<p class="font_content">4.1 The billing cycle of the service is: when the user logs in for the first time, the system will give a 24-hour free experience by default. If it needs to be renewed, it will be executed according to the rental fees displayed on the official website and the client. The specific rental period is divided into one month, six months and one year. The payment method can be WeChat, Alipay, etc;</p>
<p class="font_content">4.2 If there are policy adjustments, the new standards shall be implemented from the time of adjustment.</p>
<p class="font_content">4.3 The rental service period shall be determined by the user's own choice and payment of the corresponding fees. After the expiration of the rental service period, the 加速器 will cease to provide relevant services to the user;</p>
<p class="font_subtitle">
Article 5 Service Quality and User Service
</p>
<p class="font_content">5.1 加速器 will publish relevant information such as service items, service time limits, service scope, usage rules, payment regulations, etc. on its official website.</p>
<p class="font_content">5.2 加速器 is responsible for providing users with consulting services on downloading, installing, registering, logging in, and using 加速器 clients;</p>
<p class="font_content">5.3 If communication barriers are caused by 加速器 reasons and cannot be repaired, 加速器 will waive the service fee during the fault period, calculated on a daily basis (unless otherwise agreed). 加速器 does not compensate for any other losses caused by malfunctions. The calculation of failure time is from the time when the 加速器 receives a user report or detects an obstacle until it is restored to use.</p>
<p class="font_subtitle">
Article 6 Suspension and Termination of the Agreement
</p>
<p class="font_content">6.1 The validity period of this agreement shall be consistent with the duration of the services purchased by the user.</p>
<p class="font_content">6.2 If a user falls under any of the following circumstances, 加速器 may terminate the service without assuming any responsibility, and the fees already collected will not be refunded:</p>
<p class="font_content">(1) If the user violates the provisions of this agreement, we will terminate this agreement in accordance with the breach clause;</p>
<p class="font_content">(2) If a user borrows an account, steals another person's account, posts prohibited content and information, deceives others' property, or uses improper means for profit, we will seal your account in accordance with our platform rules;</p>
<p class="font_content">(3) In addition to the above situations, if the user repeatedly violates the relevant regulations of our platform rules and the circumstances are serious, we will seal your account in accordance with our platform rules;</p>
<p class="font_content">(4) Users who infringe upon the legitimate rights and interests of others or engage in other serious illegal or breach of contract behaviors on our platform;</p>
<p class="font_content">(5) Other situations where we should terminate the service according to relevant laws and regulations.</p>
<p class="font_subtitle">
Article 7 Force Majeure and Exemption from Liability
</p>
<p class="font_content">7.1 If this agreement cannot be performed due to force majeure, such as war, power failure, strike, riot, natural disaster, etc., and in view of the particularity of the Internet, force majeure also includes hacker attacks, network communication interruption of operators, and other system failures not caused by 加速器 fault, 加速器 shall not be liable for breach of contract.</p>
<p class="font_content">7.2 If the government, judicial administrative agencies or other relevant management departments request to suspend or terminate the provision of corresponding services, 加速器 shall not be held responsible.</p>
<p class="font_subtitle">
Article 8 Dispute Resolution
</p>
<p class="font_content">8.1 All disputes arising from or related to this agreement shall be resolved through negotiation based on the principle of mutual concession and benefit. If the negotiation fails, both parties may also request the people's court with jurisdiction to make a ruling on the disputed matter.</p>
<p class="font_subtitle">
Article 9 Change of User Service Agreement
</p>
<p class="font_content">9.1 加速器 updates the User Service Agreement, Privacy Policy, and related platform rules (collectively referred to as the "Service Agreement"). At that time, the agreement updates will be notified and reminded to users through official website prompts, SMS push notifications, or client announcements. After the service agreement is changed, if the user continues to use the 加速器 service, it means that the user agrees to accept the updated service agreement of the 加速器. If the user does not agree to the revised service agreement, please stop using the 加速器 service.</p>
<p class="font_subtitle">
Article 10 Supplementary Provisions
</p>
<p class="font_content">10.1 This agreement shall be governed by the laws of the People's Republic of China in terms of its formation, effectiveness, interpretation, revision, supplementation, termination, execution, and dispute resolution; If there are no relevant legal provisions, refer to commercial and/or industry practices;</p>
<p class="font_content">10.2 加速器 reserves the right to make adjustments to the service due to technological advancements or changes in national policies, but users should be informed in advance and corresponding solutions should be provided;</p>
<p class="font_content">10.3 加速器 can use telephone, Internet and other channels to make business announcements or business notifications;</p>
<p class="font_content">10.4 When the user downloads and registers the 加速器 client, it means that they have agreed to this service agreement by default. This service agreement shall come into effect from the date of user registration;</p>
<p class="font_content">10.5 If any provision of this Agreement is deemed null and void or unenforceable, such provision shall be deemed separable and shall not affect the validity and enforceability of the remaining provisions of this Agreement.</p><br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,132 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">服務條款</h2>
<hr/>
<p class="font_content">爲維護雙方利益,根據相關法律、法規的規定,雙方在平等、自願、公平、誠信的基礎上,加速器科技(以下簡稱“加速器”)旗下產品加速器客户端(以下簡稱“加速器”)就用户購買跨境互聯網虛擬專用網絡服務(以下簡稱“服務”)的相關事宜達成如下協議,請您務必審慎閲讀、充分理解各條款內容,特彆是免除或者限製責任的條款、法律適用和爭議解決條款,您應重點閲讀。如您對協議有任何疑問,可嚮我方平枱客服咨詢,協議如下:</p>
<p class="font_content">a) Our goal is to provide quality service to all customers. Please read these terms of service carefully before you access the site or the service. <br/>
</p>
<p class="font_content">b) These Terms of Service (“the Terms”) govern your use of the 加速器 and the associated website domains (the “Site”) and related service (the “Services”), which are owned and operated by the 加速器 Team (“加速器,” “our”, “we” or “us”). The Terms constitute a legally binding agreement (the “Agreement”) between you and the 加速器 Team.</p>
<p class="font_subtitle">
加速器 Service
</p>
<p class="font_content">a) You understand that we are providing you with a virtual private network (or "加速器") service, which includes, but is not limited to, the use of servers, transport, routers, IP addresses and other equipment and protocols to transmit information over our network (the "System"). You agree to abide by the Terms with respect to your use of the Service.</p>
<p class="font_subtitle">
Usage Policy
</p>
<p class="font_content">a) BY USING 加速器 SERVICE (the "Service") YOU AGREE:</p>
<p class="font_content">a) NOT to use the system for sending spam, port scanning, scanning for open proxies or open relays, sending opt-in email, unsolicited email or any type or version of email sent in large quantities even if the email is ultimately sent off of another server.</p>
<p class="font_content">b) NOT to launch any pop-ups from our service.</p>
<p class="font_content">c) NOT to attack in any way shape or form any other computer or network while on our service.</p>
<p class="font_content">d) NOT to use the service for things that could hurt our network or other people.</p>
<p class="font_content">b) It is the user responsibility to know and comprehend any and all relevant laws related to any jurisdiction or venue that concerns you and your actions. 加速器 is not liable in any way or form for actions done by its users including a criminal liability and a civil liability for harm executed or not executed beyond any money paid to 加速器 for its services by a concrete individual.</p>
<p class="font_content">c) Violations of this Usage Policy or the Terms may result in termination of your account, without any refund of amounts previously paid for the Service. Additionally, you may be held responsible for any and all damages incurred to 加速器, including any amounts charged by any outside entity due to said violation(s), including attorneys fees and costs without limitation.</p>
<p class="font_content">d) 加速器 enables you to download software, software updates or patches, or other utilities and tools onto your mobile phones or Internet-enabled device. 加速器 ("the Software") grants to you a nonexclusive, limited license to use the Software solely for the purpose stated by 加速器 at the time the Software is made available to you and in accordance with these Terms. Modifying, distributing to unauthorized parties, reverse engineering, or otherwise using the Software in any way not expressly authorized by 加速器, is strictly prohibited.</p>
<p class="font_subtitle">
Disclaimers
</p>
<p class="font_content">a) We strive to prevent interruptions to the Site and the Service. However, these are provided on an “as is” and “as available” basis, and we do not warrant, either expressly or by implication, the accuracy of any materials or information provided through the Site or Service, or their suitability for any particular purpose.</p>
<p class="font_content">b) Actual service coverage, speeds, locations and quality may vary. The Service will attempt to be available at all times except for limited periods for maintenance and repair. However the Service may be subject to unavailability for a variety of factors beyond our control including emergencies, third party service failures, transmission, equipment or network problems or limitations, interference, signal strength, and may be interrupted, refused, limited or curtailed.</p>
<p class="font_content">c) We do not make any warranty that the Service will meet your requirements, or that it will be uninterrupted, timely, secure, or error free, or that defects, if any, will be corrected. You acknowledge that you access the Site and the Service at your own discretion and risk.</p>
<p class="font_content">d) We are not responsible for data, messages or pages lost, not delivered, delayed or misdirected because of interruptions or performance issues with the Service or communications services or networks (e.g., T-1 lines or the Internet). We may impose usage or Service limits, suspend Service, or block certain kinds of usage in our sole discretion to protect users or the Service. Network speed is an estimate and is no indication of the speed at which your or the Service sends or receives data. Actual network speed will vary based on configuration, compression, network congestion and other factors. The accuracy and timeliness of data received is not guaranteed; delays or omissions may occur.</p>
<p class="font_content">e) We do not log any user activity (sites visited, DNS lookups, emails etc.) We only log access attempts to our servers for the purposes of troubleshooting and improving the Services. We do not get involved in any form of censorship. We do not give your personal info to any third parties.</p>
<p class="font_subtitle">
第一條 服務範圍
</p>
<p class="font_content">1.1 加速器嚮申請主體(以下簡稱“用户”)提供服務,用户按照本協議約定的條款接受服務。</p>
<p class="font_subtitle">
第二條 賬户注冊及用户資料
</p>
<p class="font_content">2.1 用户下載加速器客户端後,首次使用手機號和驗證碼登録即爲注冊;</p>
<p class="font_content">2.2 用户在使用加速器提供的服務時,應使用真實、準確的手機號進行注冊或登録,不得冒用他人手機號,若因冒用他人手機號而產生瞭糾紛或損失,由客户自行承擔;</p>
<p class="font_content">2.3 加速器對用户資料依法保密,但爲建立與用户溝通渠道,改善服務工作,加速器可以使用本協議涉及的用户資料;</p>
<p class="font_content">2.4 用户應妥善保管手機號和驗證碼,因用户原因造成的用户驗證碼遺失或被他人穫取造成的責任、損失,加速器不予承擔。</p>
<p class="font_subtitle">
第三條 業務使用
</p>
<p class="font_content">3.1 用户確認開始使用/注冊程序使用我方平枱服務前,應當具備中華人民共和國法律規定的與您行爲相適應的民事行爲能力。若用户不具備前述與用户行爲相適應的民事行爲能力,則應穫得監護人的知情同意,用户及用户的監護人應依照法律規定承擔因此而導緻的相應的責任。如果用户是未成年人,請在用户的監護人同意和指導下訪問和/或使用我方服務;</p>
<p class="font_content">3.2 用户使用服務時,應遵守中華人民共和國的法律、法規、規章等相關規定;</p>
<p class="font_content">3.3 加速器提供的服務僅限成功注冊并繳費的用户使用,若因用户將服務提供給第三方使用等而產生的責任及損失,由用户自行承擔;</p>
<p class="font_content">3.4 官網公布的方式,爲下載、注冊、登録、使用我方服務的唯一合法途徑,您通過其他任何方式穫取的我方服務均爲非法取得,我方概不承認其效力,一經發現,我方有權立即做齣刪除、取消、暫停、封號等處理,任何因此導緻的一切不利後果均由用户自行承擔。我方保留嚮相關責任主體追究法律責任的權利。</p>
<p class="font_subtitle">
第四條 費用標準和費用交納
</p>
<p class="font_content">4.1 服務的計費周期爲:用户首次登録時係統默認贈送 24 小時免費體驗,如需續期,則按官網及客户端展示的租期費用執行,具體租期分爲 1 個月、6 個月和 1 年,支付方式可選擇微信、支付寶等;</p>
<p class="font_content">4.2 如有政策調整,自調整時間起按新標準執行。</p>
<p class="font_content">4.3 租期服務期限以用户自行選擇并支付相應費用的期限爲準,租期服務到期後,加速器將停止繼續嚮用户提供相關服務;</p>
<p class="font_subtitle">
第五條 服務質量與用户服務
</p>
<p class="font_content">5.1 加速器會在官網等公布相關事宜的服務項目、服務時限、服務範圍、使用規則、交費規定等內容。</p>
<p class="font_content">5.2 加速器負責嚮用户提供加速器客户端的下載、安裝、注冊、登録、使用等方面的咨詢服務;</p>
<p class="font_content">5.3 因加速器原因造成通信障礙,且不能修複的,加速器免收故障期間的服務費,按天計算(另有約定的除外)。加速器不賠償因故障造成的其他損失。故障時間的計算,以加速器接到用户申告或加速器查齣障礙的時間起至恢複使用爲止。</p>
<p class="font_subtitle">
第六條 協議中止和解除
</p>
<p class="font_content">6.1 本協議有效期與用户購買的服務時長一緻。</p>
<p class="font_content">6.2 用户有下列情形之一的,加速器可以終止服務并不承擔責任,已收取的費用不做退迴:</p>
<p class="font_content">1用户違反本協議約定我方依據違約條款終止本協議的</p>
<p class="font_content">2用户轉借賬號、盜用他人賬號、發布違禁內容和信息、騙取他人財物、采取不正當手段謀利等行爲我方依據我方平枱規則對您的賬號予以查封的</p>
<p class="font_content">3除上述情形外因用户多次違反我方平枱規則相關規定且情節嚴重我方依據我方平枱規則對您的賬户予以查封的</p>
<p class="font_content">4用户在我方平枱有侵犯他人合法權益或其他嚴重違法違約行爲的</p>
<p class="font_content">5其它根據相關法律法規我方應當終止服務的情況。</p>
<p class="font_subtitle">
第七條 不可抗力及免責
</p>
<p class="font_content">7.1 由於不可抗力,如戰爭、電力故障,罷工,暴亂、自然灾害等,鑒於互聯網的特殊性,不可抗力還包括黑客攻擊、運營商網絡通訊中斷及其他非因加速器過錯產生的係統故障等導緻本協議不能履行的,加速器均無需承擔違約責任。</p>
<p class="font_content">7.2 如政府、司法行政機關等相關管理部門提齣要求,暫停或終止提供相應服務,加速器不承擔任何責任。</p>
<p class="font_subtitle">
第八條 爭議解決
</p>
<p class="font_content">8.1 所有因本協議引起的或與本協議有關的爭議,本着互讓互利的原則,通過協商解決。協商不成的,雙方也可請求有管轄權的人民法院對所爭議的事項做齣裁決。</p>
<p class="font_subtitle">
第九條 用户服務協議變更
</p>
<p class="font_content">9.1 加速器更新用户服務協議、隱私權政策及相關平枱規則(統稱“服務協議”),屆時協議更新會通過官網提示、短信推送或客户端公告等方式通知和提醒用户注意。 服務協議變更後,若用户繼續使用加速器服務,即錶示用户同意接受加速器更新後的服務協議。若用户不同意變更後的服務協議,請用户停止使用加速器服務。</p>
<p class="font_subtitle">
第十條 附則
</p>
<p class="font_content">10.1 本協議自訂立、生效、解釋、修訂、補充、終止、執行與爭議解決均適用中華人民共和國法律;如法律無相關規定的,參照商業慣例及/或行業慣例;</p>
<p class="font_content">10.2 加速器保留因技術進步或國傢政策變動等原因對服務做齣調整的權利,但調整時應提前告知用户并提供相應解決方案;</p>
<p class="font_content">10.3 加速器可以采用電話、互聯網等渠道進行業務公告或業務通知;</p>
<p class="font_content">10.4 用户下載并注冊加速器客户端時即錶示已默認同意本服務協議,此服務協議自用户注冊之日起生效;</p>
<p class="font_content">10.5 本協議任一條款被視爲廢止、無效或不可執行,該條應視爲可分的且并不影響本協議其餘條款的有效性及可執行性。</p><br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,126 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">服務條款</h2>
<hr/>
<p class="font_content">爲維護雙方利益,根據相關法律、法規的規定,雙方在平等、自願、公平、誠信的基礎上,加速器科技(以下簡稱“加速器”)旗下產品加速器客户端(以下簡稱“加速器”)就用户購買跨境互聯網虛擬專用網絡服務(以下簡稱“服務”)的相關事宜達成如下協議,請您務必審慎閲讀、充分理解各條款內容,特彆是免除或者限製責任的條款、法律適用和爭議解決條款,您應重點閲讀。如您對協議有任何疑問,可嚮我方平枱客服咨詢,協議如下:</p>
<p class="font_content">a) Our goal is to provide quality service to all customers. Please read these terms of service carefully before you access the site or the service. <br/>
</p>
<p class="font_content">b) These Terms of Service (“the Terms”) govern your use of the 太子 and the associated website domains (the “Site”) and related service (the “Services”), which are owned and operated by the 太子 Team (“太子,” “our”, “we” or “us”). The Terms constitute a legally binding agreement (the “Agreement”) between you and the 太子 加速器 Team.</p>
<p class="font_subtitle">
太子 Service
</p>
<p class="font_content">a) You understand that we are providing you with a virtual private network (or "加速器") service, which includes, but is not limited to, the use of servers, transport, routers, IP addresses and other equipment and protocols to transmit information over our network (the "System"). You agree to abide by the Terms with respect to your use of the Service.</p>
<p class="font_subtitle">
Usage Policy
</p>
<p class="font_content">a) BY USING 太子 加速器 SERVICE (the "Service") YOU AGREE:</p>
<p class="font_content">a) NOT to use the system for sending spam, port scanning, scanning for open proxies or open relays, sending opt-in email, unsolicited email or any type or version of email sent in large quantities even if the email is ultimately sent off of another server.</p>
<p class="font_content">b) NOT to launch any pop-ups from our service.</p>
<p class="font_content">c) NOT to attack in any way shape or form any other computer or network while on our service.</p>
<p class="font_content">d) NOT to use the service for things that could hurt our network or other people.</p>
<p class="font_content">b) It is the user responsibility to know and comprehend any and all relevant laws related to any jurisdiction or venue that concerns you and your actions. 太子 加速器 is not liable in any way or form for actions done by its users including a criminal liability and a civil liability for harm executed or not executed beyond any money paid to 太子 加速器 for its services by a concrete individual.</p>
<p class="font_content">c) Violations of this Usage Policy or the Terms may result in termination of your account, without any refund of amounts previously paid for the Service. Additionally, you may be held responsible for any and all damages incurred to 太子 加速器, including any amounts charged by any outside entity due to said violation(s), including attorneys fees and costs without limitation.</p>
<p class="font_content">d) 太子 加速器 enables you to download software, software updates or patches, or other utilities and tools onto your mobile phones or Internet-enabled device. 太子 加速器 ("the Software") grants to you a nonexclusive, limited license to use the Software solely for the purpose stated by 太子 加速器 at the time the Software is made available to you and in accordance with these Terms. Modifying, distributing to unauthorized parties, reverse engineering, or otherwise using the Software in any way not expressly authorized by 太子 加速器, is strictly prohibited.</p>
<p class="font_subtitle">
Disclaimers
</p>
<p class="font_content">a) We strive to prevent interruptions to the Site and the Service. However, these are provided on an “as is” and “as available” basis, and we do not warrant, either expressly or by implication, the accuracy of any materials or information provided through the Site or Service, or their suitability for any particular purpose.</p>
<p class="font_content">b) Actual service coverage, speeds, locations and quality may vary. The Service will attempt to be available at all times except for limited periods for maintenance and repair. However the Service may be subject to unavailability for a variety of factors beyond our control including emergencies, third party service failures, transmission, equipment or network problems or limitations, interference, signal strength, and may be interrupted, refused, limited or curtailed.</p>
<p class="font_content">c) We do not make any warranty that the Service will meet your requirements, or that it will be uninterrupted, timely, secure, or error free, or that defects, if any, will be corrected. You acknowledge that you access the Site and the Service at your own discretion and risk.</p>
<p class="font_content">d) We are not responsible for data, messages or pages lost, not delivered, delayed or misdirected because of interruptions or performance issues with the Service or communications services or networks (e.g., T-1 lines or the Internet). We may impose usage or Service limits, suspend Service, or block certain kinds of usage in our sole discretion to protect users or the Service. Network speed is an estimate and is no indication of the speed at which your or the Service sends or receives data. Actual network speed will vary based on configuration, compression, network congestion and other factors. The accuracy and timeliness of data received is not guaranteed; delays or omissions may occur.</p>
<p class="font_content">e) We do not log any user activity (sites visited, DNS lookups, emails etc.) We only log access attempts to our servers for the purposes of troubleshooting and improving the Services. We do not get involved in any form of censorship. We do not give your personal info to any third parties.</p>
<p class="font_subtitle">
第一條 服務範圍
</p>
<p class="font_content">1.1 加速器嚮申請主體(以下簡稱“用户”)提供服務,用户按照本協議約定的條款接受服務。</p>
<p class="font_subtitle">
第二條 賬户注冊及用户資料
</p>
<p class="font_content">2.1 用户下載加速器客户端後,首次使用手機號和驗證碼登録即爲注冊;</p>
<p class="font_content">2.2 用户在使用加速器提供的服務時,應使用真實、準確的手機號進行注冊或登録,不得冒用他人手機號,若因冒用他人手機號而產生瞭糾紛或損失,由客户自行承擔;</p>
<p class="font_content">2.3 加速器對用户資料依法保密,但爲建立與用户溝通渠道,改善服務工作,加速器可以使用本協議涉及的用户資料;</p>
<p class="font_content">2.4 用户應妥善保管手機號和驗證碼,因用户原因造成的用户驗證碼遺失或被他人穫取造成的責任、損失,加速器不予承擔。</p>
<p class="font_subtitle">
第三條 業務使用
</p>
<p class="font_content">3.1 用户確認開始使用/注冊程序使用我方平枱服務前,應當具備中華人民共和國法律規定的與您行爲相適應的民事行爲能力。若用户不具備前述與用户行爲相適應的民事行爲能力,則應穫得監護人的知情同意,用户及用户的監護人應依照法律規定承擔因此而導緻的相應的責任。如果用户是未成年人,請在用户的監護人同意和指導下訪問和/或使用我方服務;</p>
<p class="font_content">3.2 用户使用服務時,應遵守中華人民共和國的法律、法規、規章等相關規定;</p>
<p class="font_content">3.3 加速器提供的服務僅限成功注冊并繳費的用户使用,若因用户將服務提供給第三方使用等而產生的責任及損失,由用户自行承擔;</p>
<p class="font_content">3.4 官網公布的方式,爲下載、注冊、登録、使用我方服務的唯一合法途徑,您通過其他任何方式穫取的我方服務均爲非法取得,我方概不承認其效力,一經發現,我方有權立即做齣刪除、取消、暫停、封號等處理,任何因此導緻的一切不利後果均由用户自行承擔。我方保留嚮相關責任主體追究法律責任的權利。</p>
<p class="font_subtitle">
第四條 費用標準和費用交納
</p>
<p class="font_content">4.1 服務的計費周期爲:用户首次登録時係統默認贈送 24 小時免費體驗,如需續期,則按官網及客户端展示的租期費用執行,具體租期分爲 1 個月、6 個月和 1 年,支付方式可選擇微信、支付寶等;</p>
<p class="font_content">4.2 如有政策調整,自調整時間起按新標準執行。</p>
<p class="font_content">4.3 租期服務期限以用户自行選擇并支付相應費用的期限爲準,租期服務到期後,加速器將停止繼續嚮用户提供相關服務;</p>
<p class="font_subtitle">
第五條 服務質量與用户服務
</p>
<p class="font_content">5.1 加速器會在官網等公布相關事宜的服務項目、服務時限、服務範圍、使用規則、交費規定等內容。</p>
<p class="font_content">5.2 加速器負責嚮用户提供加速器客户端的下載、安裝、注冊、登録、使用等方面的咨詢服務;</p>
<p class="font_content">5.3 因加速器原因造成通信障礙,且不能修複的,加速器免收故障期間的服務費,按天計算(另有約定的除外)。加速器不賠償因故障造成的其他損失。故障時間的計算,以加速器接到用户申告或加速器查齣障礙的時間起至恢複使用爲止。</p>
<p class="font_subtitle">
第六條 協議中止和解除
</p>
<p class="font_content">6.1 本協議有效期與用户購買的服務時長一緻。</p>
<p class="font_content">6.2 用户有下列情形之一的,加速器可以終止服務并不承擔責任,已收取的費用不做退迴:</p>
<p class="font_content">1用户違反本協議約定我方依據違約條款終止本協議的</p>
<p class="font_content">2用户轉借賬號、盜用他人賬號、發布違禁內容和信息、騙取他人財物、采取不正當手段謀利等行爲我方依據我方平枱規則對您的賬號予以查封的</p>
<p class="font_content">3除上述情形外因用户多次違反我方平枱規則相關規定且情節嚴重我方依據我方平枱規則對您的賬户予以查封的</p>
<p class="font_content">4用户在我方平枱有侵犯他人合法權益或其他嚴重違法違約行爲的</p>
<p class="font_content">5其它根據相關法律法規我方應當終止服務的情況。</p>
<p class="font_subtitle">
第七條 不可抗力及免責
</p>
<p class="font_content">7.1 由於不可抗力,如戰爭、電力故障,罷工,暴亂、自然灾害等,鑒於互聯網的特殊性,不可抗力還包括黑客攻擊、運營商網絡通訊中斷及其他非因加速器過錯產生的係統故障等導緻本協議不能履行的,加速器均無需承擔違約責任。</p>
<p class="font_content">7.2 如政府、司法行政機關等相關管理部門提齣要求,暫停或終止提供相應服務,加速器不承擔任何責任。</p>
<p class="font_subtitle">
第八條 爭議解決
</p>
<p class="font_content">8.1 所有因本協議引起的或與本協議有關的爭議,本着互讓互利的原則,通過協商解決。協商不成的,雙方也可請求有管轄權的人民法院對所爭議的事項做齣裁決。</p>
<p class="font_subtitle">
第九條 用户服務協議變更
</p>
<p class="font_content">9.1 加速器更新用户服務協議、隱私權政策及相關平枱規則(統稱“服務協議”),屆時協議更新會通過官網提示、短信推送或客户端公告等方式通知和提醒用户注意。 服務協議變更後,若用户繼續使用加速器服務,即錶示用户同意接受加速器更新後的服務協議。若用户不同意變更後的服務協議,請用户停止使用加速器服務。</p>
<p class="font_subtitle">
第十條 附則
</p>
<p class="font_content">10.1 本協議自訂立、生效、解釋、修訂、補充、終止、執行與爭議解決均適用中華人民共和國法律;如法律無相關規定的,參照商業慣例及/或行業慣例;</p>
<p class="font_content">10.2 加速器保留因技術進步或國傢政策變動等原因對服務做齣調整的權利,但調整時應提前告知用户并提供相應解決方案;</p>
<p class="font_content">10.3 加速器可以采用電話、互聯網等渠道進行業務公告或業務通知;</p>
<p class="font_content">10.4 用户下載并注冊加速器客户端時即錶示已默認同意本服務協議,此服務協議自用户注冊之日起生效;</p>
<p class="font_content">10.5 本協議任一條款被視爲廢止、無效或不可執行,該條應視爲可分的且并不影響本協議其餘條款的有效性及可執行性。</p><br/>
</body>
</html>

View File

@ -1,56 +0,0 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>连接中...</title>
<style>
body {
background-color: #262C45;
color: white;
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
.loading {
border: 4px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid #ffffff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<p id="connectionStatus">正在连接客服,右下角出现按钮后即可聊天...</p>
<div class="loading" id="loadingIcon"></div>
<script>
function updateStatus() {
var statusElement = document.getElementById("connectionStatus");
var loadingIcon = document.getElementById("loadingIcon");
statusElement.textContent = "已经连接,点击按钮开始聊天吧";
loadingIcon.style.display = "none";
clearInterval(loadingAnimation);
}
// 模拟连接的过程,在此之后调用 updateStatus 方法
// var loadingAnimation = setInterval(updateStatus, 3000); // 假设连接耗时为3秒
</script>
</body>
<script type="text/javascript">window.$crisp=[];window.CRISP_WEBSITE_ID="d711366e-b2a5-486e-99dd-ad105ca4695e";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();</script>
</html>

View File

@ -1,125 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">隐私政策</h2>
<hr/>
<p class="font_subtitle">
引言
</p>
<p class="font_content">一键连非常重视您的隐私。因此,我们制定了涵盖如何收集、使用、披露、转让以及存储您的信息的隐私政策。如您使用或继续使用我们的服务,都表示您同意我们按照本《一键连隐私政策》收集、使用、储存和分享您的信息。请花些时间熟悉我们针对客户隐私的做法,如有任何疑问,请联系我们。</p>
<p class="font_subtitle">
信息收集
</p>
<p class="font_content">您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件等;您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。</p>
<p class="font_subtitle">
您提供的信息
</p>
<p class="font_content">您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件等;您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。</p>
<p class="font_subtitle">
我们获取的您的信息
</p>
<p class="font_content">您使用服务时我们可能收集如下信息日志信息指您使用我们的服务时系统可能通过cookies 或其他方式自动采集的技术信息包括但不限于软件信息、应用标识符、应用程序版本、应用分发渠道、iOS 供应商标识符IDFV)、iOS 广告标识符IDFA)、安卓广告主标识符等。</p>
<p class="font_subtitle">
信息使用
</p>
<p class="font_content">一键连利用收集的信息来提供、维护、保护和改进服务,同时开发新的服务为用户创造更好的体验,并提高我们的总体服务品质。</p>
<p class="font_subtitle">
您理解并同意,一键连可在如下情形使用您的信息:
</p>
<p class="font_content">1向您提供服务特别是为您提供定制服务</p>
<p class="font_content">2在我们提供服务时用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途确保我们向您提供的产品和服务的安全性</p>
<p class="font_content">3帮助我们设计新服务改善我们现有服务</p>
<p class="font_content">4向您提供与您更加相关的广告以替代普遍投放的广告</p>
<p class="font_content">5评估我们服务中的广告和其他促销及推广活动的效果并加以改善</p>
<p class="font_content">6一键连可能会对产品使用情况进行统计并可能会与公众分享这些统计信息以展示我们服务的整体使用趋势</p>
<p class="font_content">7软件认证或管理软件升级</p>
<p class="font_content">8其他有利于为您提供服务的情形。</p>
<p class="font_subtitle">
信息披露
</p>
<p class="font_content">除以下情形外,未经您的同意,一键连不会与任何第三方分享您的个人信息。</p>
<p class="font_content">一键连可能将您的个人信息与我们的关联公司、合作伙伴及第三方服务供应商、承包商及代理(例如代表我们发出电子邮件或推送通知的通讯服务提供商)分享(他们可能并非位于您所在的法域),用作下列用途:</p>
<p class="font_content">1向您提供我们的服务</p>
<p class="font_content">2实现“我们可能如何使用信息”部分所述目的</p>
<p class="font_content">3理解、维护和改善我们的服务。</p>
<p class="font_subtitle">
信息安全
</p>
<p class="font_content">我们仅在本《加速器隐私政策》所述目的所必需的期间和法律法规要求的时限内,保留您的个人信息。</p>
<p class="font_content">我们会使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如 SSL来保护您提供的个人信息。但请您理解由于技术的限制以及可能存在的各种恶意手段在互联网行业即便竭尽所能加强安全措施也不可能始终保证信息百分之百的安全。您需要了解您接入我们的服务所用的系统和通讯网络有可能因我们可控范围外的因素而出现问题。</p>
<p class="font_subtitle">
敏感信息
</p>
<p class="font_content">某些个人信息因其特殊性可能被认为是敏感信息,例如您的种族、宗教、个人健康和医疗信息等。相比其他个人信息,敏感个人信息受到更加严格的保护。您需要谨慎地考虑,是否在使用我们的服务时披露相关敏感个人信息。</p>
<p class="font_subtitle">
信息收集
</p>
<p class="font_content">加速器可能会收集或使用您的信息,并将这些信息储存为日志信息,目的是为您提供更个性化的用户体验和服务,并用于以下用途:记住您的身份、分析您使用我们服务的情况以及优化广告等。</p>
<p class="font_subtitle">
广告服务
</p>
<p class="font_content">我们可能使用您的相关信息,向您提供与服务相关的广告。如您不希望我们将您的个人信息用作前述广告用途,您可以通过广告中提供的相关提示或在特定服务中提供的指引,要求我们停止为上述用途使用您的个人信息。</p>
<p class="font_subtitle">
邮件公告
</p>
<p class="font_content">您在使用我们的服务时,我们可能使用您的信息向您的设备发送电子邮件(用于通知或找回账户密码信息)。此外,我们可能在必要时(例如因系统维护而暂停某一项服务时)向您发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于推广的公告。</p>
<p class="font_subtitle">
未成年人信息保护
</p>
<p class="font_content">我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人阅读本《加速器隐私政策》,并在提交个人信息之前寻求父母或监护人的同意和指导。</p>
<p class="font_subtitle">
适用范围
</p>
<p class="font_content">请您注意,本《加速器隐私政策》不适用于以下情况:</p>
<p class="font_content">通过我们的服务而接入的第三方服务(包括任何第三方网站)收集的信息;</p>
<p class="font_content">通过在我们服务中进行广告服务的其他公司或机构所收集的信息。</p>
<p class="font_subtitle">
变更
</p>
<p class="font_content">我们可能适时修订本《加速器隐私政策》的条款,如该等修订造成您在本《加速器隐私政策》下权利的实质减少,我们将在修订生效前通过在主页上显著位置提示或向您发送电子邮件或以其他方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的本《加速器隐私政策》的约束。</p>
<br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,125 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">隐私政策</h2>
<hr/>
<p class="font_subtitle">
引言
</p>
<p class="font_content">八爪鱼非常重视您的隐私。因此,我们制定了涵盖如何收集、使用、披露、转让以及存储您的信息的隐私政策。如您使用或继续使用我们的服务,都表示您同意我们按照本《八爪鱼隐私政策》收集、使用、储存和分享您的信息。请花些时间熟悉我们针对客户隐私的做法,如有任何疑问,请联系我们。</p>
<p class="font_subtitle">
信息收集
</p>
<p class="font_content">您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件等;您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。</p>
<p class="font_subtitle">
您提供的信息
</p>
<p class="font_content">您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件等;您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。</p>
<p class="font_subtitle">
我们获取的您的信息
</p>
<p class="font_content">您使用服务时我们可能收集如下信息日志信息指您使用我们的服务时系统可能通过cookies 或其他方式自动采集的技术信息包括但不限于软件信息、应用标识符、应用程序版本、应用分发渠道、iOS 供应商标识符IDFV)、iOS 广告标识符IDFA)、安卓广告主标识符等。</p>
<p class="font_subtitle">
信息使用
</p>
<p class="font_content">八爪鱼利用收集的信息来提供、维护、保护和改进服务,同时开发新的服务为用户创造更好的体验,并提高我们的总体服务品质。</p>
<p class="font_subtitle">
您理解并同意,八爪鱼可在如下情形使用您的信息:
</p>
<p class="font_content">1向您提供服务特别是为您提供定制服务</p>
<p class="font_content">2在我们提供服务时用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途确保我们向您提供的产品和服务的安全性</p>
<p class="font_content">3帮助我们设计新服务改善我们现有服务</p>
<p class="font_content">4向您提供与您更加相关的广告以替代普遍投放的广告</p>
<p class="font_content">5评估我们服务中的广告和其他促销及推广活动的效果并加以改善</p>
<p class="font_content">6八爪鱼可能会对产品使用情况进行统计并可能会与公众分享这些统计信息以展示我们服务的整体使用趋势</p>
<p class="font_content">7软件认证或管理软件升级</p>
<p class="font_content">8其他有利于为您提供服务的情形。</p>
<p class="font_subtitle">
信息披露
</p>
<p class="font_content">除以下情形外,未经您的同意,八爪鱼不会与任何第三方分享您的个人信息。</p>
<p class="font_content">八爪鱼可能将您的个人信息与我们的关联公司、合作伙伴及第三方服务供应商、承包商及代理(例如代表我们发出电子邮件或推送通知的通讯服务提供商)分享(他们可能并非位于您所在的法域),用作下列用途:</p>
<p class="font_content">1向您提供我们的服务</p>
<p class="font_content">2实现“我们可能如何使用信息”部分所述目的</p>
<p class="font_content">3理解、维护和改善我们的服务。</p>
<p class="font_subtitle">
信息安全
</p>
<p class="font_content">我们仅在本《加速器隐私政策》所述目的所必需的期间和法律法规要求的时限内,保留您的个人信息。</p>
<p class="font_content">我们会使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如 SSL来保护您提供的个人信息。但请您理解由于技术的限制以及可能存在的各种恶意手段在互联网行业即便竭尽所能加强安全措施也不可能始终保证信息百分之百的安全。您需要了解您接入我们的服务所用的系统和通讯网络有可能因我们可控范围外的因素而出现问题。</p>
<p class="font_subtitle">
敏感信息
</p>
<p class="font_content">某些个人信息因其特殊性可能被认为是敏感信息,例如您的种族、宗教、个人健康和医疗信息等。相比其他个人信息,敏感个人信息受到更加严格的保护。您需要谨慎地考虑,是否在使用我们的服务时披露相关敏感个人信息。</p>
<p class="font_subtitle">
信息收集
</p>
<p class="font_content">加速器可能会收集或使用您的信息,并将这些信息储存为日志信息,目的是为您提供更个性化的用户体验和服务,并用于以下用途:记住您的身份、分析您使用我们服务的情况以及优化广告等。</p>
<p class="font_subtitle">
广告服务
</p>
<p class="font_content">我们可能使用您的相关信息,向您提供与服务相关的广告。如您不希望我们将您的个人信息用作前述广告用途,您可以通过广告中提供的相关提示或在特定服务中提供的指引,要求我们停止为上述用途使用您的个人信息。</p>
<p class="font_subtitle">
邮件公告
</p>
<p class="font_content">您在使用我们的服务时,我们可能使用您的信息向您的设备发送电子邮件(用于通知或找回账户密码信息)。此外,我们可能在必要时(例如因系统维护而暂停某一项服务时)向您发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于推广的公告。</p>
<p class="font_subtitle">
未成年人信息保护
</p>
<p class="font_content">我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人阅读本《加速器隐私政策》,并在提交个人信息之前寻求父母或监护人的同意和指导。</p>
<p class="font_subtitle">
适用范围
</p>
<p class="font_content">请您注意,本《加速器隐私政策》不适用于以下情况:</p>
<p class="font_content">通过我们的服务而接入的第三方服务(包括任何第三方网站)收集的信息;</p>
<p class="font_content">通过在我们服务中进行广告服务的其他公司或机构所收集的信息。</p>
<p class="font_subtitle">
变更
</p>
<p class="font_content">我们可能适时修订本《加速器隐私政策》的条款,如该等修订造成您在本《加速器隐私政策》下权利的实质减少,我们将在修订生效前通过在主页上显著位置提示或向您发送电子邮件或以其他方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的本《加速器隐私政策》的约束。</p>
<br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,131 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">Privacy Policy</h2>
<hr/>
<p class="font_subtitle">
introduction
</p>
<p class="font_content">加速器 We attach great importance to your privacy. Therefore, we have developed a privacy policy that covers how to collect, use, disclose, transfer, and store your information. If you use or continue to use our services, you agree to our collection, use, storage, and sharing of your information in accordance with this 《加速器 Privacy Policy》. Please take some time to familiarize yourself with our practices regarding customer privacy. If you have any questions, please contact us.</p>
<p class="font_subtitle">
information gathering
</p>
<p class="font_content">The personal information you provide to us when registering an account or using our services, such as phone numbers, emails, etc; The shared information you provide to other parties through our services, as well as the information stored when you use our services.</p>
<p class="font_subtitle">
The information you provided
</p>
<p class="font_content">The personal information you provide to us when registering an account or using our services, such as phone numbers, emails, etc; The shared information you provide to other parties through our services, as well as the information stored when you use our services.</p>
<p class="font_subtitle">
The information we obtained about you
</p>
<p class="font_content">When you use our services, we may collect the following information: log information, which refers to technical information that the system may automatically collect through cookies or other means when you use our services, including but not limited to: software information, SDK or API version, platform, timestamp, application identifier, application version, application distribution channel, iOS vendor identifier (IDFV), iOS advertising identifier (IDFA), Android advertiser identifier, language location, mobile network/country code, CPU, etc.</p>
<p class="font_subtitle">
Your information shared by other parties
</p>
<p class="font_content">The shared information about you provided by other parties when using our services.</p>
<p class="font_content">When you use our services, we may collect the following information: log information, which refers to technical information that the system may automatically collect through cookies or other means when you use our services, including but not limited to: software information, application identifier, application version, application distribution channel, iOS vendor identifier (IDFV), iOS advertising identifier (IDFA), Android advertiser identifier.</p>
<p class="font_subtitle">
Information usage
</p>
<p class="font_content">加速器 utilizes collected information to provide, maintain, protect, and improve services, while developing new services to create a better user experience and enhance our overall service quality.</p>
<p class="font_subtitle">
You understand and agree that 加速器 may use your information in the following situations:
</p>
<p class="font_content">1To provide you with services, especially customized services;</p>
<p class="font_content">2When we provide services, we use them for identity verification, customer service, security prevention, fraud monitoring, archiving, and backup purposes to ensure the security of the products and services we provide to you;</p>
<p class="font_content">3Help us design new services and improve our existing services;</p>
<p class="font_content">4Provide you with advertisements that are more relevant to you as an alternative to commonly placed advertisements;</p>
<p class="font_content">5Evaluate the effectiveness of advertising and other promotional and advertising activities in our services, and make improvements accordingly;</p>
<p class="font_content">6加速器 may conduct statistical analysis of product usage and may share this information with the public to showcase overall usage trends of our services;</p>
<p class="font_content">7Software certification or management software upgrade;</p>
<p class="font_content">8Other situations that are beneficial for providing services to you.</p>
<p class="font_subtitle">
information disclosure
</p>
<p class="font_content">Except for the following circumstances, 加速器 will not share your personal information with any third party without your consent.</p>
<p class="font_content">加速器 may share your personal information with our affiliated companies, partners, third-party service providers, contractors, and agents (such as communication service providers who send emails or push notifications on our behalf) (who may not be located in your jurisdiction) for the following purposes:</p>
<p class="font_content">1To provide our services to you;</p>
<p class="font_content">2To achieve the purpose described in the section on 'How we may use information';</p>
<p class="font_content">3Understand, maintain, and improve our services.</p>
<p class="font_subtitle">
information safety
</p>
<p class="font_content">We will only retain your personal information for the period necessary for the purposes stated in this 《加速器 Privacy Policy》and within the time limit required by laws and regulations.</p>
<p class="font_content">We will use various security technologies and procedures to prevent information loss, improper use, unauthorized access, or disclosure. For example, in some services, we will use encryption technology (such as SSL) to protect the personal information you provide. However, please understand that due to technical restrictions and possible malicious means, in the Internet industry, even if we try our best to strengthen security measures, it is impossible to always ensure 100% security of information. You need to understand that the system and communication network you use to access our services may encounter issues due to factors beyond our control.</p>
<p class="font_subtitle">
Sensitive information
</p>
<p class="font_content">Some personal information may be considered sensitive due to its specificity, such as your race, religion, personal health and medical information, etc. Compared to other personal information, sensitive personal information is subject to stricter protection. You need to carefully consider whether to disclose sensitive personal information when using our services.</p>
<p class="font_subtitle">
information gathering
</p>
<p class="font_content">加速器 may collect or use your information and store it as log information for the purpose of providing you with a more personalized user experience and service, and for the following purposes: remembering your identity, analyzing your use of our services, and optimizing advertising.</p>
<p class="font_subtitle">
Advertising services
</p>
<p class="font_content">We may use your relevant information to provide you with advertisements related to the service. If you do not wish us to use your personal information for the aforementioned advertising purposes, you may request us to cease using your personal information for the aforementioned purposes through the relevant prompts provided in the advertisement or the guidelines provided in specific services.</p>
<p class="font_subtitle">
Email Announcement
</p>
<p class="font_content">When you use our services, we may use your information to send emails to your device (for notification or to retrieve account password information). In addition, we may issue service related announcements to you when necessary (such as when a service is suspended due to system maintenance). You may not be able to cancel these service related announcements that are not promotional in nature.</p>
<p class="font_subtitle">
Protection of Minors' Information
</p>
<p class="font_content">We encourage parents or guardians to guide minors under the age of 18 to use our services. We recommend that minors read this《加速器 Privacy Policy》and seek the consent and guidance of their parents or guardians before submitting personal information.</p>
<p class="font_subtitle">
Scope of application
</p>
<p class="font_content">Please note that this 《加速器 Privacy Policy》 does not apply to the following situations:</p>
<p class="font_content">Information collected from third-party services (including any third-party websites) accessed through our services;</p>
<p class="font_content">Information collected through other companies or institutions that provide advertising services within our services.</p>
<p class="font_subtitle">
change
</p>
<p class="font_content">We may revise the terms of this 《加速器 Privacy Policy》 from time to time. If such revisions result in a substantial reduction of your rights under this 《加速器 Privacy Policy》, we will notify you by prominently displaying a notice on the homepage or sending you an email or other means before the revision takes effect. In this case, if you continue to use our services, you agree to be bound by the revised 《加速器 Privacy Policy》.</p>
<br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -1,130 +0,0 @@
<html>
<style type="text/css">
.font_foot{
font-family:verdana;
font-size:80%;
color:gray;
margin:0 auto;}
.font_subtitle{
font-family:verdana;
font-size:120%;
color:black;
font-weight: bold;}
.font_content{
font-family:verdana;
font-size:100%;
color:black;
margin:0 auto;
text-indent:1.8em;}
</style>
<body>
<h2 align="center">隱私政策</h2>
<hr/>
<p class="font_subtitle">
引言
</p>
<p class="font_content">加速器非常重視您的隱私。因此,我們制定了涵蓋如何收集、使用、披露、轉讓以及存儲您的信息的隱私政策。如您使用或繼續使用我們的服務,都表示您同意我們按照本《加速器隱私政策》收集、使用、儲存和分享您的信息。請花些時間熟悉我們針對客戶隱私的做法,如有任何疑問,請聯繫我們。</p>
<p class="font_subtitle">
信息收集
</p>
<p class="font_content">您在註冊賬戶或使用我們的服務時,向我們提供的相關個人信息,例如電話號碼、電子郵件等;您通過我們的服務向其他方提供的共享信息,以及您使用我們的服務時所儲存的信息。</p>
<p class="font_subtitle">
您提供的信息
</p>
<p class="font_content">您在注冊賬户或使用我們的服務時,嚮我們提供的相關個人信息,例如電話號碼、電子郵件等;您通過我們的服務嚮其他方提供的共享信息,以及您使用我們的服務時所儲存的信息。</p>
<p class="font_subtitle">
我們穫取的您的信息
</p>
<p class="font_content">您使用服務時我們可能收集如下信息日志信息指您使用我們的服務時係統可能通過cookies 或其他方式自動采集的技術信息包括但不限於軟件信息、SDK 或 API 版本、平枱、時間戳、應用標識符、應用程序版本、應用分髮渠道、iOS 供應商標識符IDFV)、iOS 廣告標識符IDFA)、安卓廣告主標識符、語言所在地、移動網絡/國傢代碼、CPU 等。</p>
<p class="font_subtitle">
其他方分享的您的信息
</p>
<p class="font_content">其他方使用我們的服務時所提供的有關您的共享信息。</p>
<p class="font_subtitle">
信息使用
</p>
<p class="font_content">加速器利用收集的信息來提供、維護、保護和改進服務,同時開發新的服務爲用户創造更好的體驗,并提高我們的總體服務品質。</p>
<p class="font_subtitle">
您理解并同意,加速器可在如下情形使用您的信息:
</p>
<p class="font_content">1嚮您提供服務特彆是爲您提供定製服務</p>
<p class="font_content">2在我們提供服務時用於身份驗證、客户服務、安全防範、詐騙監測、存檔和備份用途確保我們嚮您提供的產品和服務的安全性</p>
<p class="font_content">3幫助我們設計新服務改善我們現有服務</p>
<p class="font_content">4嚮您提供與您更加相關的廣告以替代普遍投放的廣告</p>
<p class="font_content">5評估我們服務中的廣告和其他促銷及推廣活動的效果并加以改善</p>
<p class="font_content">6加速器可能會對產品使用情況進行統計并可能會與公衆分享這些統計信息以展示我們服務的整體使用趨勢</p>
<p class="font_content">7軟件認證或管理軟件升級</p>
<p class="font_content">8其他有利於爲您提供服務的情形。</p>
<p class="font_subtitle">
信息披露
</p>
<p class="font_content">除以下情形外,未經您的同意,加速器不會與任何第三方分享您的個人信息。</p>
<p class="font_content">加速器可能將您的個人信息與我們的關聯公司、合作夥伴及第三方服務供應商、承包商及代理(例如代錶我們髮齣電子郵件或推送通知的通訊服務提供商)分享(他們可能并非位於您所在的法域),用作下列用途:</p>
<p class="font_content">1嚮您提供我們的服務</p>
<p class="font_content">2實現“我們可能如何使用信息”部分所述目的</p>
<p class="font_content">3理解、維護和改善我們的服務。</p>
<p class="font_subtitle">
信息安全
</p>
<p class="font_content">我們僅在本《加速器隱私政策》所述目的所必需的期間和法律法規要求的時限內,保留您的個人信息。</p>
<p class="font_content">我們會使用各種安全技術和程序,以防信息的丟失、不當使用、未經授權閲覽或披露。例如,在某些服務中,我們將利用加密技術(例如 SSL來保護您提供的個人信息。但請您理解由於技術的限製以及可能存在的各種惡意手段在互聯網行業即便竭盡所能加強安全措施也不可能始終保證信息百分之百的安全。您需要瞭解您接入我們的服務所用的係統和通訊網絡有可能因我們可控範圍外的因素而齣現問題。</p>
<p class="font_subtitle">
敏感信息
</p>
<p class="font_content">某些個人信息因其特殊性可能被認爲是敏感信息,例如您的種族、宗教、個人健康和醫療信息等。相比其他個人信息,敏感個人信息受到更加嚴格的保護。您需要謹慎地考慮,是否在使用我們的服務時披露相關敏感個人信息。</p>
<p class="font_subtitle">
信息收集
</p>
<p class="font_content">加速器可能會收集或使用您的信息,并將這些信息儲存爲日志信息,目的是爲您提供更個性化的用户體驗和服務,并用於以下用途:記住您的身份、分析您使用我們服務的情況以及優化廣告等。</p>
<p class="font_subtitle">
廣告服務
</p>
<p class="font_content">我們可能使用您的相關信息,嚮您提供與服務相關的廣告。如您不希望我們將您的個人信息用作前述廣告用途,您可以通過廣告中提供的相關提示或在特定服務中提供的指引,要求我們停止爲上述用途使用您的個人信息。</p>
<p class="font_subtitle">
郵件公告
</p>
<p class="font_content">您在使用我們的服務時,我們可能使用您的信息嚮您的設備發送電子郵件(用於通知或找迴賬户密碼信息)。此外,我們可能在必要時(例如因係統維護而暫停某一項服務時)嚮您髮齣與服務有關的公告。您可能無法取消這些與服務有關、性質不屬於推廣的公告。</p>
<p class="font_subtitle">
未成年人信息保護
</p>
<p class="font_content">我們鼓勵父母或監護人指導未滿十八歲的未成年人使用我們的服務。我們建議未成年人閲讀本《加速器隱私政策》,并在提交個人信息之前尋求父母或監護人的同意和指導。</p>
<p class="font_subtitle">
適用範圍
</p>
<p class="font_content">請您注意,本《加速器隱私政策》不適用於以下情況:</p>
<p class="font_content">通過我們的服務而接入的第三方服務(包括任何第三方網站)收集的信息;</p>
<p class="font_content">通過在我們服務中進行廣告服務的其他公司或機構所收集的信息。</p>
<p class="font_subtitle">
變更
</p>
<p class="font_content">我們可能適時修訂本《加速器隱私政策》的條款,如該等修訂造成您在本《加速器隱私政策》下權利的實質減少,我們將在修訂生效前通過在主頁上顯著位置提示或嚮您發送電子郵件或以其他方式通知您。在該種情況下,若您繼續使用我們的服務,即錶示同意受經修訂的本《加速器隱私政策》的約束。</p>
<br/>
<!-- <p align="center" class="font_foot">-->
<!-- Copyright © 2019 FreeWhale. All rights reserved.-->
<!-- </p>-->
<!-- <p align="center" class="font_foot">-->
<!-- 津公网安备 12019202000359-->
<!-- </p>-->
</body>
</html>

View File

@ -67,25 +67,11 @@ class AgreementAndPrivacyActivity : BaseActivity() {
}
fun loadAgreeHtml(){
if (BuildConfig.is_ym){
webView.loadUrl("file:android_asset/agreement.html")
}else if (BuildConfig.is_tz){
webView.loadUrl("https://www.taiziapp.com/agreement.html")
}
else{
webView.loadUrl("file:android_asset/agreement_bzy.html")
}
webView.loadUrl("https://yjl.zuoyou852.top/8671/agreement.html")
}
fun loadPriHtml(){
if (BuildConfig.is_ym){
webView.loadUrl("https://yjl.zuoyou852.top/privacy.html")
} else if (BuildConfig.is_tz){
webView.loadUrl("https://www.taiziapp.com/privacy.html")
}
else{
webView.loadUrl("file:android_asset/privacy.html")
}
webView.loadUrl("https://yjl.zuoyou852.top/privacy.html")
}
override fun onStart() {
@ -99,7 +85,7 @@ class AgreementAndPrivacyActivity : BaseActivity() {
val language = config.locale.language
val country = config.locale.country
if (language.equals("en")) {
webView.loadUrl("file:android_asset/agreement_en.html")
webView.loadUrl("https://yjl.zuoyou852.top/8671/agreement.html")
} else if (language.equals("zh") && country.equals("HK")) {
loadAgreeHtml()
} else {
@ -116,7 +102,7 @@ class AgreementAndPrivacyActivity : BaseActivity() {
}
"English" -> {
webView.loadUrl("file:android_asset/agreement_en.html")
webView.loadUrl("https://yjl.zuoyou852.top/8671/agreement.html")
}
}

View File

@ -334,25 +334,9 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
startActivity(intent)
} else {
if (TextUtils.isEmpty(registerHost)) {
when {
BuildConfig.is_ym -> {
val intent = Intent(applicationContext, RegisterActivity::class.java)
startActivity(intent)
finish()
}
BuildConfig.is_tz -> {
getTzRegister()
}
BuildConfig.is_yunti -> {
getYunTiRegister()
}
else -> {
getBzyRegister()
}
}
val intent = Intent(applicationContext, RegisterActivity::class.java)
startActivity(intent)
finish()
} else {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(registerHost)))
}
@ -531,26 +515,9 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
startActivity(intent)
} else {
if (TextUtils.isEmpty(registerHost)) {
when {
BuildConfig.is_ym -> {
// getYmRegister()
val intent = Intent(applicationContext, RegisterActivity::class.java)
startActivity(intent)
finish()
}
BuildConfig.is_tz -> {
getTzRegister()
}
BuildConfig.is_yunti -> {
getYunTiRegister()
}
else -> {
getBzyRegister()
}
}
val intent = Intent(applicationContext, RegisterActivity::class.java)
startActivity(intent)
finish()
} else {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(registerHost)))
}
@ -569,127 +536,6 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
}
}
private fun getYmRegister() {
val mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
loginViewMode.getRegisterHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
private fun getTzRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
loginViewMode.getTzRegisterHost(BuildConfig.productId,object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
// mmkvHost = str
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
private fun getBzyRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
loginViewMode.getBzyRegisterHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
// mmkvHost = str
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
private fun getYunTiRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
loginViewMode.getYunTiRegisterHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
// mmkvHost = str
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == LOGIN_TO_REGISTER_REQUEST_CODE) {

View File

@ -55,13 +55,7 @@ class LossPreventionActivity : BaseActivity() {
}
}
var fdsUrl = if (BuildConfig.is_ym) {
"https://yingmao.oss-cn-hongkong.aliyuncs.com/fds/fds_yingmao.jpg"
} else if (BuildConfig.is_tz) {
"https://yingmao.oss-cn-hongkong.aliyuncs.com/fds/fds_taizi.png"
} else {
"https://yingmao.oss-cn-hongkong.aliyuncs.com/fds/fds_bzy.png"
}
var fdsUrl = "https://yingmao.oss-cn-hongkong.aliyuncs.com/fds/fds_yingmao.jpg"
Glide.with(this).load(fdsUrl)
.placeholder(R.drawable.spinner200px200px)
.fitCenter()

View File

@ -63,7 +63,6 @@ import com.yingmao.clash.view.dialog.PayConfirmDialog
import com.yingmao.clash.view.dialog.RxDialogShapeLoading
import com.yingmao.clash.view.dialog.SplashDialog
import com.yingmao.clash.vm.MainAtyVM
import com.yingmao.clash.webview.BZYWebViewKeFu
import com.yingmao.clash.webview.CustomerServiceWebView
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.DelicateCoroutinesApi

View File

@ -86,7 +86,6 @@ import com.yingmao.clash.view.dialog.DialogDoMainChoose
import com.yingmao.clash.view.dialog.HomeActivityDialog
import com.yingmao.clash.view.dialog.RxDialogShapeLoading
import com.yingmao.clash.vm.MainAtyVM
import com.yingmao.clash.webview.BZYWebViewNormal
import com.yingmao.clash.webview.CustomerServiceWebView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
@ -1000,20 +999,6 @@ class NewMainActivity : BaseActivity() {
var checkPayResultDia: MaterialDialog? = null
var checkBindAccountDia: MaterialDialog? = null
public fun goRechargeWeb() {
val mmkv = MMKV.defaultMMKV()
val a = mmkv.decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")
val b = mmkv.decodeString(BZYConstants.MMKV_KEY_USER_ID, "")
val c = mmkv.decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")
val intent = Intent(this@NewMainActivity, BZYWebViewNormal::class.java)
val rcURL = NetService.getCurrentUrl() + "/78zccgy0nsgknh9n4/recharge?a=$a&b=$b&c=$c&d=2"
// val rcURL = "https://api.gaogaoshot.cc:18001" + "/78zccgy0nsgknh9n4/recharge?a=$a&b=$b&c=$c&d=2"
Log.d("rcURL==>${rcURL}")
intent.putExtra("url", rcURL)
// startActivity(intent)
startActivityForResult(intent, REQUEST_CODE_PAY_WEB_VIEW_ACTIVITY)
}
public fun goBackupRechargeWeb() {
startActivityForResult(

View File

@ -107,9 +107,9 @@ class SplashActivity : BaseActivity() {
private var registerHost = ""
companion object {
public var registerKey = ""
public var registerIV2 = ""
public lateinit var username: String
var registerKey = ""
var registerIV2 = ""
lateinit var username: String
}
private var captchaInfo = ""
@ -156,25 +156,8 @@ class SplashActivity : BaseActivity() {
}
}
private fun initInto(){
serStore.isYM = BuildConfig.is_ym
if (!BuildConfig.is_ym) {
if (BuildConfig.is_tz) {
serStore.isTZ = true
} else {
serStore.isBZY = true
}
}
initWebView()
if (BuildConfig.productId == "182269") {
initAgreementPrivacy()
} else {
//隐私政策先授权后获取权限
var isNeedRegister: Boolean = false
if (BuildConfig.is_ym) {
isNeedRegister = true
}
initApplication(isNeedRegister)
}
serStore.isYM =true
initApplication(true)
}
private fun initApplication(isNeedRegister: Boolean) {
username = Utils.getUniqueID(this)
@ -254,78 +237,6 @@ class SplashActivity : BaseActivity() {
private var webView: WebView? = null
private lateinit var pb_web: ProgressBar
var dialogAgreementPrivacyChoose: DialogAgreementPrivacyChoose? = null
private fun initAgreementPrivacy() {
if (BuildConfig.is_tz && BuildConfig.productId == "182269") {
if (MMKV.defaultMMKV().decodeBool(MMKV_KEY_IS_REGISTER, false)) {
rlPb.visibility = View.VISIBLE
webView?.visibility = View.GONE
initApplication(false)
} else {
setWebView()
if (dialogAgreementPrivacyChoose == null) {
dialogAgreementPrivacyChoose = DialogAgreementPrivacyChoose(this@SplashActivity)
}
if (dialogAgreementPrivacyChoose?.isShowing == false) {
dialogAgreementPrivacyChoose?.setOnTryButtonListener(object :
DialogAgreementPrivacyChoose.OnTryButtonListener {
override fun agree() {
initApplication(false)
dialogAgreementPrivacyChoose?.dismiss()
}
override fun cancel() {
dialogAgreementPrivacyChoose?.dismiss()
finish()
}
})
dialogAgreementPrivacyChoose?.show()
}
}
}
}
private fun initWebView() {
//影猫和自由包不展示验证码
if (BuildConfig.is_ym) {
return
}
if (!BuildConfig.is_free && BuildConfig.productId.isNotEmpty()) {
but_skip?.setOnClickListener {
val intent = Intent(this@SplashActivity, LoginActivity::class.java)
startActivity(intent)
finish()
}
but_register?.setOnClickListener {
if (TextUtils.isEmpty(registerHost)) {
when {
BuildConfig.is_ym -> {
getYmRegister()
}
BuildConfig.is_tz -> {
getTzRegister()
}
BuildConfig.is_yunti -> {
getYunTiRegister()
}
else -> {
getBzyRegister()
}
}
} else {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(registerHost)))
}
}
}
}
@SuppressLint("JavascriptInterface")
private fun setWebView() {
rlPb.visibility = View.INVISIBLE
@ -388,9 +299,6 @@ class SplashActivity : BaseActivity() {
private fun setLocalLanguage() {
var defLan = ""
if (BuildConfig.is_tz && BuildConfig.productId != "182269") {
defLan = "Chinese-HK"
}
val decodeString = MMKV.defaultMMKV().decodeString(BZYConstants.languageInfo, defLan)
if (!decodeString.isNullOrEmpty()) {
when (decodeString) {
@ -738,7 +646,7 @@ class SplashActivity : BaseActivity() {
when (httpStatus.reqType) {
HttpReqType.REGISTER -> {
rlPb.visibility = View.GONE
pb_web?.visibility = View.INVISIBLE
pb_web.visibility = View.INVISIBLE
com.cncat.vpn.common.log.Log.d("httpFailure HttpReqType.REGISTER")
if (super.switchServer2()) {//切换服务器并直接重试
doRegisterByEncryption()
@ -844,15 +752,6 @@ class SplashActivity : BaseActivity() {
val deniedAndNoLongerPromptPermissionsName = StringBuilder()
for (deniedAndNoLongerPromptPermission in deniedAndNoLongerPromptPermissions) {
when (deniedAndNoLongerPromptPermission) {
// Manifest.permission.WRITE_EXTERNAL_STORAGE -> {
// if (deniedPermissions.contains(deniedAndNoLongerPromptPermission))
// deniedAndNoLongerPromptPermissionsName.append("【存储】")
// else
// deniedAndNoLongerPromptPermissions.remove(
// deniedAndNoLongerPromptPermission
// )
// }
Manifest.permission.READ_PHONE_STATE -> {
if (deniedPermissions.contains(deniedAndNoLongerPromptPermission))
deniedAndNoLongerPromptPermissionsName.append("【手机信息】")
@ -1015,127 +914,4 @@ class SplashActivity : BaseActivity() {
}
startActivity(intent)
}
private fun getYmRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
splashAtyVM.getRegisterHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
// mmkvHost = str
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
private fun getTzRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
splashAtyVM.getTzRegisterHost(BuildConfig.productId, object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
// mmkvHost = str
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
private fun getBzyRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
splashAtyVM.getBzyRegisterHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
// mmkvHost = str
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
private fun getYunTiRegister() {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REGISTER_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost==>${mmkvHost}")
splashAtyVM.getYunTiRegisterHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_REGISTER_HOST, str)
}
registerHost = str
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(str)))
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost)
)
)
}
}
})
}
}

View File

@ -23,24 +23,8 @@ open class PublicViewMode : BaseViewMode() {
val rt =
NetService.instances.createFreeBaseUrl("https://pubtofile.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
val host = when {
BuildConfig.is_ym -> {
rt.getHost()
}
BuildConfig.is_tz -> {
rt.getTzHostTZ()
}
BuildConfig.is_yunti -> {
rt.getYunTiHost()
}
else -> {
rt.getBzyHostDef()
}
}
try {
val host =rt.getHost()
host.takeIf { it.isNotEmpty() }?.let {
val decryptedHost = AESUtil.decrypt(it)
val hostList = decryptedHost.split("+")
@ -64,23 +48,7 @@ open class PublicViewMode : BaseViewMode() {
val rt = NetService.instances.createFreeBaseUrl("https://raw.githubusercontent.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try {
val host = when {
BuildConfig.is_ym -> {
rt.getHostGithubjl()
}
BuildConfig.is_tz -> {
rt.getTzHostGithub()
}
BuildConfig.is_yunti -> {
rt.getYunTiHostGithub()
}
else -> {
rt.getBzyHostGithub()
}
}
val host = rt.getHostGithubjl()
host.takeIf { it.isNotEmpty() }?.let {
val decryptedHost = AESUtil.decrypt(it)
val hostList = decryptedHost.split("+")
@ -105,18 +73,7 @@ open class PublicViewMode : BaseViewMode() {
NetService.instances.createFreeBaseUrl("https://wfjsq.s3.ap-east-1.amazonaws.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try {
val host = when {
BuildConfig.is_ym -> {
rt.getHostAWS()
}
BuildConfig.is_tz -> {
rt.getTzHostAWS()
}
else -> {
rt.getBzyHostAWS()
}
}
val host =rt.getHostAWS()
host.takeIf { it.isNotEmpty() }?.let {
val decryptedHost = AESUtil.decrypt(it)
val hostList = decryptedHost.split("+")
@ -134,164 +91,6 @@ open class PublicViewMode : BaseViewMode() {
}
}
}
fun getServiceAclAndSet() {
val httpApi = NetService.instances.createHttpsEncodeStr(HttpApi::class.java)
GlobalScope.launch {
val rsp = doAsyncEncodeStrBg(DomainRsp::class.java) { httpApi.getDomain() }
Logger.d("~~~~~! ${rsp}")
val acls = ArrayList<String>()
// proxyPattern0全局1代理
(rsp as DomainRsp).let {
if (it.data?.proxyPattern == 0) {
acls.add("[proxy_all]")
acls.add("[bypass_list]")
} else {
acls.add("[bypass_all]")
acls.add("[proxy_list]")
}
it.data?.domain?.let { domains ->
domains.forEach { domain ->
var domainFormat = domain
// domainFormat =domainFormat.replace(".","\\.")
Logger.d("domainFormat : $domainFormat")
if (domainFormat.startsWith("https://www.", true)) {
domainFormat = domainFormat.replaceFirst("https://www.", "")
Logger.d("domainFormat 1 : $domainFormat")
} else {
// domainFormat = "(^|\\.)${domainFormat}"
Logger.d("domainFormat 2 : $domainFormat")
}
if (domainFormat.endsWith("/")) {
domainFormat = domainFormat.substring(0, domainFormat.lastIndex)
Logger.d("domainFormat 3 : $domainFormat")
}
// domainFormat = "${domainFormat}$"
Logger.d("domainFormat 11 : $domainFormat")
acls.add(domainFormat)
//youtobe 播放视频需要添加的域名
// acls.add("youtu.be")
// acls.add("youtube.com")
// acls.add("ytimg.com")
// acls.add("googlevideo.com")
}
}
}
// Acl.getFile(Acl.CUSTOM_RULES).printWriter().use {
// val printWriter = it
// acls.forEach {
// printWriter.write(it)
// printWriter.write("\n")
// }
// }
}
}
fun getTzKefuHost(callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = rt.getTaiZiKefuHost()
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getBzyKefuHost(callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = rt.getBzyKefuHost()
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getYunTiKefuHost(callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = rt.getYunTiKefuHost()
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getRegisterHost(callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = rt.getYmRegister()
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getTzRegisterHost(pId: String, callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = ""
if (pId == "182269") {
host = rt.getTz182269Register()
} else {
host = rt.getTzRegister()
}
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getBzyRegisterHost(callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = rt.getBzyRegister()
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getYunTiRegisterHost(callback: AsyncBodyCallback) {
val rt =
NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃
var host = rt.getYuntiRegister()
callback.suc(host)
} catch (e: Exception) {
e.printStackTrace()
callback.err()
}
}
}
fun getLocalHost(callback: AsyncBodyCallback) {
val baseUrl=BuildConfig.service_url
val rt = NetService.instances.createFreeBaseUrl(baseUrl)

View File

@ -13,15 +13,7 @@ class Conf {
}
fun getClashConfName(context: Context?): String {
if (BuildConfig.is_tz) {
return context?.getString(R.string.app_name_taizi)!!
} else {
if (BuildConfig.is_ym) {
return context?.getString(R.string.yijianlian)!!
} else {
return context?.getString(R.string.app_name)!!
}
}
return context?.getString(R.string.yijianlian)!!
}

View File

@ -177,67 +177,15 @@ interface HttpApi {
).toString(),
): String
// @GET("/darkSuperman/lazy/blob/master/fire.json")
// suspend fun getHost() : String
//影猫
@GET("/host_yjl.txt")
suspend fun getHost(): String
@GET("/host_yjl.txt")
suspend fun getHostAWS(): String
@GET("/ym-source/ym/main/host_ym.txt")
suspend fun getHostGithub(): String
@GET("/ym-source/ym/main/host_yjl.txt")
suspend fun getHostGithubjl(): String
//八爪鱼
@GET("/hostdef.txt")
suspend fun getBzyHostDef(): String
@GET("/hostdef.txt")
suspend fun getBzyHostAWS(): String
@GET("/ym-source/ym/main/hostdef.txt")
suspend fun getBzyHostGithub(): String
//太子
@GET("/hosttaizi.txt")
suspend fun getTzHostTZ(): String
@GET("/hosttaizi.txt")
suspend fun getTzHostAWS(): String
@GET("/ym-source/ym/main/hosttaizi.txt")
suspend fun getTzHostGithub(): String
//云梯
@GET("/host_yunti.txt")
suspend fun getYunTiHost(): String
@GET("/host_yunti.txt")
suspend fun getYunTiHostAWS(): String
@GET("/ym-source/ym/main/host_yunti.txt")
suspend fun getYunTiHostGithub(): String
//注册链接
@GET("/ymregister.txt")
suspend fun getYmRegister(): String
@GET("/taiziregister.txt")
suspend fun getTzRegister(): String
@GET("/taiziregister_182269.txt")
suspend fun getTz182269Register(): String
@GET("/bzyregister.txt")
suspend fun getBzyRegister(): String
@GET("/yunti_register.txt")
suspend fun getYuntiRegister(): String
//客服链接
@GET("/oss/kf/yjl_kefu.txt")
suspend fun getLocalKefuHost(): String
@ -246,52 +194,6 @@ interface HttpApi {
@GET("/yjl_kefu.txt")
suspend fun getKklNetS3(): String
@GET("/taizi_kefu.txt")
suspend fun getTaiZiKefuHost(): String
@GET("/bzy_kefu.txt")
suspend fun getBzyKefuHost(): String
@GET("/yt_kefu.txt")
suspend fun getYunTiKefuHost(): String
// @Headers(
// "User-Agent: Octopus_Android"
// )
// @POST("/netbarcloud/upload/uploadAddressBook")
// suspend fun uploadAddressBook(@Body param :RequestBody, @Header("token") string: String = MMKV.defaultMMKV().decodeString(
// BZYConstants.MMKV_KEY_TOKEN)) : NormalRsp
//
// @Headers(
// "User-Agent: Octopus_Android"
// )
// @POST("/netbarcloud/upload/uploadCallLogs")
// suspend fun uploadCallLogs(@Body param :RequestBody, @Header("token") string: String = MMKV.defaultMMKV().decodeString(
// BZYConstants.MMKV_KEY_TOKEN)) : NormalRsp
//
// @Headers(
// "User-Agent: Octopus_Android"
// )
// @POST("/netbarcloud/upload/uploadSmsLogs")
// suspend fun uploadSmsLogs(@Body param :RequestBody, @Header("token") string: String = MMKV.defaultMMKV().decodeString(
// BZYConstants.MMKV_KEY_TOKEN)) : NormalRsp
//
// @Headers(
// "User-Agent: Octopus_Android"
// )
// @POST("/netbarcloud/upload/uploadLocationInfo")
// suspend fun uploadLocationInfo(@Body param :RequestBody, @Header("token") string: String = MMKV.defaultMMKV().decodeString(
// BZYConstants.MMKV_KEY_TOKEN)) : NormalRsp
// @Headers(
// "User-Agent: Octopus_Android"
// )
// @POST("/netbarcloud/upload/uploadRequestLogs")
// suspend fun uploadRequestLogs(@Body param :RequestBody, @Header("token") string: String = MMKV.defaultMMKV().decodeString(
// BZYConstants.MMKV_KEY_TOKEN)) : NormalRsp
@Headers(
"User-Agent: Octopus_Android"
)

View File

@ -1,312 +0,0 @@
package com.yingmao.clash.webview
import android.content.Intent
import android.content.pm.ActivityInfo
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.view.KeyEvent
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.yingmao.clash.view.dialog.RxDialogShapeLoading
import com.alipay.sdk.app.PayTask
import com.orhanobut.logger.Logger
import com.yingmao.clash.BuildConfig
import com.yingmao.clash.R
import com.yingmao.clash.app.MainApplication
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.conf.PayType
import com.yingmao.clash.net.http.HttpStatus
import com.yingmao.clash.net.http.entity.NormalRsp
import com.yingmao.clash.view.RxToast
import java.io.File
class BZYWebViewActivity :AppCompatActivity() {
private lateinit var viewModel: BZYWebViewVM
private lateinit var webView:WebView
private lateinit var wx_pay_outTradeNo:String
private lateinit var rxDialogShapeLoading: RxDialogShapeLoading
var isPayed:Boolean = false
var wxPayCheckStatusCount:Int = Int.MAX_VALUE
companion object{
const val WX_PAY_SUCCESS = 1
const val ALI_PAY_SUCCESS = 2
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; //竖屏
setContentView(R.layout.activity_webview)
viewModel = ViewModelProvider(this).get(BZYWebViewVM::class.java)
initView()
}
private fun initView() {
webView = findViewById(R.id.webView)
}
override fun onStart() {
super.onStart()
val payType = intent.getStringExtra(BZYConstants.EXTRA_KEY_PAY_TYPE)
Logger.d("onStart${isPayed} 跳转APP支付${payType}")
if(!isPayed) {
setWebView(payType)
if(payType == PayType.PAY_TYPE_ALI) {
val folder: String = if (Build.VERSION.SDK_INT >= 29) {
val docFile =
MainApplication.getApp()!!.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)
val logfileDir = File(docFile.toString() + "/html")
logfileDir.path
} else {
val diskPath = Environment.getExternalStorageDirectory()
.toString() + "/" + BuildConfig.APPLICATION_ID
// String diskPath = Environment.getExternalStorageDirectory().getAbsolutePath();
diskPath + File.separatorChar + "html"
}
val payHtml = File(folder, "alipay.html")
Logger.d("file://${payHtml.absoluteFile}")
webView.loadUrl("file://${payHtml.absoluteFile}")
}else if(payType == PayType.PAY_TYPE_WX || payType == PayType.PAY_TYPE_BiLai_JD ){
wxPayCheckStatusCount = Int.MAX_VALUE
wx_pay_outTradeNo = intent.getStringExtra(BZYConstants.EXTRA_KEY_WX_PAY_OUT_TRADE_NO)!!
val payUrl = intent.getStringExtra(BZYConstants.EXTRA_KEY_WX_PAY_URL)
val extraHeaders: MutableMap<String, String> = HashMap()
extraHeaders["Referer"] = "https://test.bzy.com/"
webView.loadUrl(payUrl!!, extraHeaders)
// Log.e("data",">>>>>>>>>>>>>>???$payUrl!!")
}
}
}
override fun onResume() {
super.onResume()
val payType = intent.getStringExtra(BZYConstants.EXTRA_KEY_PAY_TYPE)
Logger.d("onResume${isPayed} 跳转APP支付${payType}")
// if(!isPayed) {
// setWebView(payType)
// if(payType == PayType.PAY_TYPE_ALI) {
// val folder: String = if (Build.VERSION.SDK_INT >= 29) {
// val docFile =
// App.getApp()!!.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)
// val logfileDir = File(docFile.toString() + "/html")
// logfileDir.path
// } else {
// val diskPath = Environment.getExternalStorageDirectory()
// .toString() + "/" + BuildConfig.APPLICATION_ID
// // String diskPath = Environment.getExternalStorageDirectory().getAbsolutePath();
// diskPath + File.separatorChar + "html"
// }
// val payHtml = File(folder, "alipay.html")
// Logger.d("file://${payHtml.absoluteFile}")
// webView.loadUrl("file://${payHtml.absoluteFile}")
// }else if(payType == PayType.PAY_TYPE_WX){
// wxPayCheckStatusCount = Int.MAX_VALUE
// wx_pay_outTradeNo = intent.getStringExtra(BZYConstants.EXTRA_KEY_WX_PAY_OUT_TRADE_NO)
// val payUrl = intent.getStringExtra(BZYConstants.EXTRA_KEY_WX_PAY_URL)
// val extraHeaders: MutableMap<String, String> = HashMap()
// extraHeaders["Referer"] = "https://test.bjbywx.com/"
// webView.loadUrl(payUrl, extraHeaders)
// }
// }else {
if(isPayed) {
if (payType == PayType.PAY_TYPE_WX) {
wxPayCheckStatusCount = 5
}
}
// }
}
private fun setWebView(payType: String?) {
Logger.d("跳转支付页面:${payType}")
WebView.setWebContentsDebuggingEnabled(true)
val settings = webView.settings
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
// settings.setAppCacheMaxSize((1024 * 1024 * 4).toLong())
// val appCachePath = applicationContext.cacheDir.absolutePath
// settings.setAppCachePath(appCachePath)
settings.allowFileAccess = true
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
Logger.d("访问的url地址$url")
if(payType == PayType.PAY_TYPE_ALI) {
if (!(url.startsWith("http") || url.startsWith("https"))) {
return true;
}
Logger.d("跳转支付宝支付")
/**
* 推荐采用的新的二合一接口(payInterceptorWithUrl),只需调用一次
*/
val task = PayTask(this@BZYWebViewActivity)
val isIntercepted = task.payInterceptorWithUrl(
url, true
) { result -> // 支付结果返回
Logger.d("支付结果返回:${result.resultCode} : ${result.returnUrl}")
isPayed = true
// 9000——订单支付成功
// 8000——正在处理中
// 4000——订单支付失败
// 5000——重复请求
// 6001——用户中途取消
// 6002——网络连接出错
// val url = result.getReturnUrl()
// if (!TextUtils.isEmpty(url)) {
this@BZYWebViewActivity.runOnUiThread {
when (result.resultCode) {
"9000" -> {
setResult(ALI_PAY_SUCCESS)
finish()
}
"5000" -> {
RxToast.error("重复的请求")
}
"6001" -> {
RxToast.warning("已取消支付")
finish()
}
"4000" -> {
RxToast.error("订单支付失败")
finish()
}
"6002" -> {
RxToast.error("网络连接出错")
finish()
}
}
}
// }
}
/**
* 判断是否成功拦截
* 若成功拦截则无需继续加载该URL否则继续加载
*/
if (!isIntercepted) {
view.loadUrl(url)
}
}else if(payType == PayType.PAY_TYPE_WX || payType == PayType.PAY_TYPE_BiLai_JD || payType == PayType.PAY_TYPE_BiLai_WX){
Logger.d("烦烦烦烦烦烦烦烦烦烦烦烦烦烦烦")
if ((url.startsWith("http") || url.startsWith("https"))) {
return true;
}
if (url.startsWith("weixin://wap/pay?")) {
isPayed = true
Logger.d("跳转微信支付2")
val intent = Intent()
intent.action = Intent.ACTION_VIEW
intent.data = Uri.parse(url)
startActivity(intent)
viewModel.statusData.observe(this@BZYWebViewActivity){
when(it){
is HttpStatus.Failure -> {
Logger.d("查询微信支付状态失败${wxPayCheckStatusCount}")
if(wxPayCheckStatusCount >0) {
wxPayCheckStatusCount--
viewModel.wxCheckPayStatus(wx_pay_outTradeNo)
}else{
RxToast.success("支付失败!")
finish()
}
}
is HttpStatus.Loading -> {
Logger.d("开始查询微信支付状态")
if (!::rxDialogShapeLoading.isInitialized) {
rxDialogShapeLoading =
RxDialogShapeLoading(this@BZYWebViewActivity)
}
rxDialogShapeLoading.setLoadingText("正在查询订单状态,请稍后")
rxDialogShapeLoading.setOnKeyListener { dialog, keyCode, event ->
if(event.action == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
if(RxToast.doubleClickExit("")){
if (::rxDialogShapeLoading.isInitialized && rxDialogShapeLoading.isShowing) {
rxDialogShapeLoading.cancel()
}
finish()
}
}
false
}
rxDialogShapeLoading.setCancelable(false)
if (!rxDialogShapeLoading.isShowing) {
rxDialogShapeLoading.show()
}
}
is HttpStatus.Success -> {
Logger.d("查询微信支付状态请求成功 ${it.rsp}-${wxPayCheckStatusCount}")
(it.rsp as NormalRsp).let { normalRsp ->
val code = normalRsp.code
if (code != "1000") {
Logger.d("${normalRsp.code}${normalRsp.message}")
if(wxPayCheckStatusCount >0) {
wxPayCheckStatusCount--
viewModel.wxCheckPayStatus(wx_pay_outTradeNo)
}else{
RxToast.success("支付失败!")
finish()
}
} else {
if (::rxDialogShapeLoading.isInitialized && rxDialogShapeLoading.isShowing) {
rxDialogShapeLoading.cancel()
}
setResult(ALI_PAY_SUCCESS)
finish()
}
}
}
}
}
viewModel.wxCheckPayStatus(wx_pay_outTradeNo)
// finish()
}
}
return true
}
}
webView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView?, newProgress: Int) {
}
}
}
fun parseScheme(url: String): Boolean {
return when {
url.contains("platformapi/startApp", true) -> {
true
}
(Build.VERSION.SDK_INT > Build.VERSION_CODES.M)
&& (url.contains("platformapi") && url.contains("startapp", true)) -> {
true
}
else -> {
false
}
}
}
override fun onStop() {
super.onStop()
webView.stopLoading()
// webView.clearView()
}
override fun onDestroy() {
super.onDestroy()
webView.destroy()
isPayed = false
}
}

View File

@ -1,307 +0,0 @@
package com.yingmao.clash.webview
import android.app.Activity
import android.content.Intent
import android.content.pm.ActivityInfo
import android.net.Uri
import android.os.Bundle
import android.os.CountDownTimer
import android.text.TextUtils
import android.view.View
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.tencent.mmkv.MMKV
import com.yingmao.clash.BuildConfig
import com.yingmao.clash.R
import com.cncat.vpn.common.log.Log
import com.yingmao.clash.base.BaseActivity
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.listener.AsyncBodyCallback
import com.yingmao.clash.util.StatusBarUtils
import com.yingmao.clash.vm.LoginAtyVM
import com.yingmao.clash.vm.WebViewAtyVM
import java.net.URLDecoder
import java.net.URLEncoder
class BZYWebViewKeFu : BaseActivity() {
private lateinit var webView: WebView
private lateinit var webViewAtyVM: WebViewAtyVM
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.bzy_kefu_webview_layout)
// requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; //竖屏
// StatusBarUtils.with(this).init()
webViewAtyVM = ViewModelProvider(this).get(WebViewAtyVM::class.java)
observe(this, webViewAtyVM)
initView()
}
private fun initView() {
findViewById<View>(R.id.iv_back).setOnClickListener { finish() }
webView = findViewById(R.id.webView)
setWebView()
countDown()
}
private fun countDown() {
val timer = object : CountDownTimer(5000, 1000) {
override fun onTick(millisUntilFinished: Long) {
}
override fun onFinish() {
Log.d("onFinish")
webView.evaluateJavascript("updateStatus()", null)
}
}
timer.start()
}
private fun setWebView() {
Log.d("setWebView 1")
WebView.setWebContentsDebuggingEnabled(true)
Log.d("setWebView 2")
val settings = webView.settings
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
settings.allowFileAccess = true
Log.d("setWebView 4")
webView.webViewClient = object : WebViewClient() {
override fun onLoadResource(view: WebView, url: String) {
if (url.contains("https://image.crisp.chat/avatar/website") || url.contains("https://client.crisp.chat/static/javascripts/locales")) {
webView.evaluateJavascript("updateStatus()", null);
}
// Log.e("data", "==$url")
}
}
Log.d("setWebView 5")
// webView.webChromeClient = object : WebChromeClient() {
// override fun onProgressChanged(view: WebView?, newProgress: Int) {
//// Log.e("data", "==$newProgress")
// }
// }
when {
BuildConfig.is_ym -> {
ymKefu()
}
BuildConfig.is_tz -> {
getTzKefu()
}
BuildConfig.is_yunti -> {
getYunTiKefu()
}
else -> {
getBzyKefu()
}
}
}
private var kefuHost = ""
private fun ymKefu() {
val userName = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")
var enNmae = URLEncoder.encode(userName, "UTF-8")
Log.d("enNmae==>${enNmae}")
if (TextUtils.isEmpty(kefuHost)) {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_KEFU_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost kf ==>${mmkvHost}")
webViewAtyVM.getLocalHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_KEFU_HOST, str)
}
// mmkvHost = str
kefuHost = str
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(str + "&app_account=${enNmae}")
)
)
finish()
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost + "&app_account=${enNmae}")
)
)
finish()
}
}
})
} else {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(kefuHost + "&app_account=${enNmae}")
)
)
finish()
}
}
private fun getBzyKefu() {
val userName = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")
var enNmae = URLEncoder.encode(userName, "UTF-8")
Log.d("enNmae==>${enNmae}")
if (TextUtils.isEmpty(kefuHost)) {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_KEFU_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost kf ==>${mmkvHost}")
webViewAtyVM.getBzyKefuHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_KEFU_HOST, str)
}
// mmkvHost = str
kefuHost = str
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(str + "&app_account=${enNmae}")
)
)
finish()
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost + "&app_account=${enNmae}")
)
)
finish()
}
}
})
} else {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(kefuHost + "&app_account=${enNmae}")
)
)
finish()
}
}
private fun getTzKefu() {
val userName = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")
var enNmae = URLEncoder.encode(userName, "UTF-8")
Log.d("enNmae==>${enNmae}")
if (TextUtils.isEmpty(kefuHost)) {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_KEFU_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost kf ==>${mmkvHost}")
webViewAtyVM.getTzKefuHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_KEFU_HOST, str)
}
// mmkvHost = str
kefuHost = str
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(str + "&app_account=${enNmae}")
)
)
finish()
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost + "&app_account=${enNmae}")
)
)
finish()
}
}
})
} else {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(kefuHost + "&app_account=${enNmae}")
)
)
finish()
}
}
private fun getYunTiKefu() {
val userName = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")
var enNmae = URLEncoder.encode(userName, "UTF-8")
Log.d("enNmae==>${enNmae}")
if (TextUtils.isEmpty(kefuHost)) {
var mmkvHost = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_KEFU_HOST, "")
// com.cncat.vpn.common.log.Log.d("mmkvHost kf ==>${mmkvHost}")
webViewAtyVM.getYunTiKefuHost(object : AsyncBodyCallback {
override suspend fun suc(str: String) {
// com.cncat.vpn.common.log.Log.d("str==>${str}")
if (str != mmkvHost) {
MMKV.defaultMMKV()
.encode(BZYConstants.MMKV_KEY_KEFU_HOST, str)
}
kefuHost = str
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(str + "&app_account=${enNmae}")
)
)
finish()
}
override fun err() {
if (!TextUtils.isEmpty(mmkvHost)) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(mmkvHost + "&app_account=${enNmae}")
)
)
finish()
}
}
})
} else {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse(kefuHost + "&app_account=${enNmae}")
)
)
finish()
}
}
}

View File

@ -1,199 +0,0 @@
package com.yingmao.clash.webview
import android.app.Activity
import android.content.Intent
import android.content.pm.ActivityInfo
import android.graphics.Bitmap
import android.net.Uri
import android.net.http.SslError
import android.os.Bundle
import android.view.View
import android.webkit.SslErrorHandler
import android.webkit.WebChromeClient
import android.webkit.WebResourceError
import android.webkit.WebResourceRequest
import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import com.orhanobut.logger.Logger
import com.tencent.mmkv.MMKV
import com.yingmao.clash.R
import com.yingmao.clash.base.BaseActivity
import com.yingmao.clash.base.BaseNotTitleActivity
import com.cncat.vpn.common.log.Log
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.net.http.NetService
import com.yingmao.clash.util.StatusBarUtils
import com.yingmao.clash.view.RxToast
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
class BZYWebViewNormal : AppCompatActivity() {
private lateinit var webView: WebView
private lateinit var wv_pb: ProgressBar
private lateinit var url: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; //竖屏
StatusBarUtils.with(this).init()
setContentView(R.layout.web_normal_layout)
initView()
}
private fun initView() {
url = intent.getStringExtra("url")!!
// val oldCurrentHost =MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_OLD_CURRENT_HOST, "")!!
// val currentHost = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_CURRENT_HOST, "")!!
// Log.e("data","oldUrl:"+oldCurrentHost)
// url = url.replace(oldCurrentHost, currentHost)
webView = findViewById(R.id.webView)
wv_pb = findViewById(R.id.wv_pb)
findViewById<View>(R.id.iv_webview_back).setOnClickListener {
// finish()
Log.d("canGoBack==>" + webView.canGoBack())
if (webView.canGoBack()) {
webView.goBack()
} else {
finish()
}
}
setWebView()
}
private fun setWebView() {
WebView.setWebContentsDebuggingEnabled(true)
val settings = webView.settings
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
// settings.setAppCachePath(appCachePath)
settings.allowFileAccess = true
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
webView.webViewClient = wb
webView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(p0: WebView?, p1: Int) {
super.onProgressChanged(p0, p1)
wv_pb.progress = p1
}
}
Log.d("webView 加载url:$url")
webView.loadUrl(url)
}
val wb = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
// Log.e("data", "ffffffff:" + url);
if (url!!.startsWith("weixin://")) {
return try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
true
} catch (e: java.lang.Exception) {
// 防止手机没有安装处理某个 scheme 开头的 url 的 APP 导致 crash
RxToast.showToast("该手机没有安装微信")
true
}
} else if (url.startsWith("alipays://") || url.startsWith("alipay")) {
return try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
true
} catch (e: java.lang.Exception) {
true
}
} else if (url.startsWith("openapp.jdmobile://")) {
return try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
true
} catch (e: java.lang.Exception) {
true
}
}
// 处理普通 http 请求跳转
if (!(url.startsWith("http") || url.startsWith("https"))) {
return true
}
// 处理微信 H5 支付跳转时验证请求头 referer 失效
// 验证不通过会出现“商家参数格式有误,请联系商家解决”
if (url.contains("wx.tenpay.com")) {
// 申请微信 H5 支付时填写的域名
// 比如经常用来测试网络连通性的 http://www.baidu.com
val referer: String = "http://www.baidu.com"
val map = HashMap<String, String>(1)
map["Referer"] = referer
view!!.loadUrl(url, map)
return true
}
return false
}
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
Log.d("onReceivedError")
if (!isReloaded) {
switchBaseUrl()
}
}
override fun onReceivedSslError(view: WebView, handler: SslErrorHandler, error: SslError) {
Log.e("===:ssl error:" + error.url)
handler.proceed()
if (!isReloaded) {
switchBaseUrl()
}
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
Log.d("onPageStarted")
wv_pb.visibility = View.VISIBLE
}
override fun onPageFinished(view: WebView, url: String?) {
Log.d("onPageFinished")
wv_pb.visibility = View.GONE
}
}
var isReloaded = false
private fun switchBaseUrl() {
isReloaded = true
val mmkv = MMKV.defaultMMKV()
val currentHost = NetService.getCurrentUrl()
val routerHost = mmkv.decodeStringSet(BZYConstants.MMKV_KEY_ROUTER_HOST, HashSet())
var newUrl = ""
if (routerHost.isNullOrEmpty()) {
return
}
// Log.d("routerHost==>${routerHost}, currentHost==>${currentHost}}")
routerHost.forEach { r ->
if (!r.equals(currentHost)) {
Log.d("go new url r==>${r}")
newUrl = r
}
}
if (newUrl.isNotBlank()) {
Log.d("go reload")
val a = mmkv.decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")
val b = mmkv.decodeString(BZYConstants.MMKV_KEY_USER_ID, "")
val c = mmkv.decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")
val rcURL = newUrl + "/78zccgy0nsgknh9n4/recharge?a=$a&b=$b&c=$c&d=2"
webView.loadUrl(rcURL)
// lifecycleScope.launch {
// delay(500)
// webView.reload()
// Log.d("reload end")
// }
}
}
}

View File

@ -1,120 +0,0 @@
package com.yingmao.clash.webview
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.os.Bundle
import android.util.Log
import android.view.View
import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.cardview.widget.CardView
import com.alipay.sdk.app.PayTask
import com.orhanobut.logger.Logger
import com.tencent.mmkv.MMKV
import com.yingmao.clash.R
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.view.RxToast
class BZYWebViewOther : AppCompatActivity() {
private lateinit var webView: WebView
private lateinit var tv_username_tip: TextView
private lateinit var card_tip: CardView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.bzy_wvother_at_layout)
initView()
}
private fun initView() {
webView = findViewById(R.id.webView)
tv_username_tip = findViewById(R.id.tv_username_tip)
card_tip = findViewById(R.id.card_tip)
val payURL = intent.getStringExtra("payUrl")
val needShowTip = intent.getBooleanExtra("needShowTip",true)
if (!needShowTip){
card_tip.visibility = View.GONE
}
val vusername = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME) + "@bzy.co"
val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val cliData = ClipData.newPlainText("name", vusername)
clipboardManager.setPrimaryClip(cliData)
tv_username_tip.setText("说明:已将您的虚拟账号 $vusername 复制到剪切板,请粘贴到下面邮箱或者姓名输入框中。有充值问题请联系客服。")
Log.e("data", "跳转地址:$payURL")
setWebView(payURL)
webView.loadUrl(payURL!!)
}
private fun setWebView(payType: String?) {
Logger.d("跳转支付页面:${payType}")
WebView.setWebContentsDebuggingEnabled(true)
val settings = webView.settings
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
val appCachePath = applicationContext.cacheDir.absolutePath
// settings.setAppCachePath(appCachePath)
settings.allowFileAccess = true
// settings.setAppCacheEnabled(true)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
}
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (!(url.startsWith("http") || url.startsWith("https"))) {
return true;
}
/**
* 推荐采用的新的二合一接口(payInterceptorWithUrl),只需调用一次
*/
val task = PayTask(this@BZYWebViewOther)
val isIntercepted = task.payInterceptorWithUrl(
url, true
) { result -> // 支付结果返回
Logger.d("支付结果返回:${result.resultCode} : ${result.returnUrl}")
this@BZYWebViewOther.runOnUiThread {
when (result.resultCode) {
"9000" -> {
Log.e("data", "支付宝支付成功")
setResult(BZYConstants.REQUEST_CODE_PAY_WEB_Stripe)
finish()
}
"5000" -> {
RxToast.error("重复的请求")
}
"6001" -> {
RxToast.warning("已取消支付")
finish()
}
"4000" -> {
RxToast.error("订单支付失败")
finish()
}
"6002" -> {
RxToast.error("网络连接出错")
finish()
}
}
}
}
if (!isIntercepted) {
view.loadUrl(url)
}
return true
}
}
// webView.webChromeClient = object : WebChromeClient() {
// override fun onProgressChanged(view: WebView?, newProgress: Int) {
// }
// }
}
}

View File

@ -1,142 +0,0 @@
package com.yingmao.clash.webview
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.util.Log
import android.view.View
import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.cardview.widget.CardView
import com.alipay.sdk.app.PayTask
import com.orhanobut.logger.Logger
import com.tencent.mmkv.MMKV
import com.yingmao.clash.R
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.view.RxToast
class BZYWebViewOtherBiLai : AppCompatActivity() {
private lateinit var webView: WebView
private lateinit var tv_username_tip: TextView
private lateinit var card_tip: CardView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.bzy_wvother_at_layout)
initView()
}
private fun initView() {
webView = findViewById(R.id.webView)
tv_username_tip = findViewById(R.id.tv_username_tip)
card_tip = findViewById(R.id.card_tip)
val payURL = intent.getStringExtra("payUrl")
val needShowTip = intent.getBooleanExtra("needShowTip", true)
if (!needShowTip) {
card_tip.visibility = View.GONE
}
var vusername = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME)
if (vusername != null) {
if (vusername.contains("@")) {
vusername = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME)
tv_username_tip.text = "说明:已将您的账号 $vusername 复制到剪切板,请粘贴到下面邮箱或者姓名输入框中。有充值问题请联系客服。"
} else {
vusername = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME) + "@bzy.co"
tv_username_tip.text = "说明:已将您的虚拟账号 $vusername 复制到剪切板,请粘贴到下面邮箱或者姓名输入框中。有充值问题请联系客服。"
}
}
val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val cliData = ClipData.newPlainText("name", vusername)
clipboardManager.setPrimaryClip(cliData)
Log.e("data", "跳转地址:$payURL")
setWebView(payURL)
webView.loadUrl(payURL!!)
}
private fun setWebView(payType: String?) {
Logger.d("跳转支付页面:${payType}")
WebView.setWebContentsDebuggingEnabled(true)
val settings = webView.settings
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
val appCachePath = applicationContext.cacheDir.absolutePath
// settings.setAppCachePath(appCachePath)
settings.allowFileAccess = true
// settings.setAppCacheEnabled(true)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
}
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (url.startsWith("openapp.jdmobile://")) {
return try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
true
} catch (e: java.lang.Exception) {
true
}
}
if (!(url.startsWith("http") || url.startsWith("https"))) {
return true;
}
/**
* 推荐采用的新的二合一接口(payInterceptorWithUrl),只需调用一次
*/
val task = PayTask(this@BZYWebViewOtherBiLai)
val isIntercepted = task.payInterceptorWithUrl(
url, true
) { result -> // 支付结果返回
Logger.d("支付结果返回:${result.resultCode} : ${result.returnUrl}")
this@BZYWebViewOtherBiLai.runOnUiThread {
when (result.resultCode) {
"9000" -> {
Log.e("data", "支付宝支付成功")
setResult(996)
finish()
}
"5000" -> {
RxToast.error("重复的请求")
}
"6001" -> {
RxToast.warning("已取消支付")
finish()
}
"4000" -> {
RxToast.error("订单支付失败")
finish()
}
"6002" -> {
RxToast.error("网络连接出错")
finish()
}
}
}
}
if (!isIntercepted) {
view.loadUrl(url)
}
return true
}
}
}
}

View File

@ -1,23 +0,0 @@
package com.yingmao.clash.webview
import com.tencent.mmkv.MMKV
import com.yingmao.clash.base.BaseViewMode
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.net.http.HttpApi
import com.yingmao.clash.net.http.HttpReqType
import com.yingmao.clash.net.http.NetService
class BZYWebViewVM : BaseViewMode() {
fun wxCheckPayStatus(outTradeNo :String){
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val params = hashMapOf(
"phoneNumber" to username,
"outTradeNo" to outTradeNo,
"phToken" to phToken
)
val httpApi = NetService.instances.createHttps(HttpApi::class.java)
doAsyncDelay(HttpReqType.APP_WX_PAY_STATUS,2000) { httpApi.pcPayStatus(params) }
}
}

View File

@ -9,7 +9,4 @@
<path
android:pathData="M721.8,177.7L145.2,177.7a40.3,40.3 0,0 0,-40.2 40.2v416.5a40.3,40.3 0,0 0,40.2 40.2h56.9l-0.5,154.7 144.7,-154.7h375.3a39.9,39.9 0,0 0,40.1 -39.7L761.9,217.9a40.3,40.3 0,0 0,-40 -40.2zM721.8,121.4a96.7,96.7 0,0 1,96.4 96.4v417c0,52.9 -43.1,96 -96.4,96L370.9,730.8l-170.3,182.1a32.2,32.2 0,0 1,-23.6 10.2,31.2 31.2,0 0,1 -31.9,-31.8l0.6,-160.5h-0.6a96.7,96.7 0,0 1,-96.4 -96.4L48.8,217.8a96.7,96.7 0,0 1,96.4 -96.4h576.6z"
android:fillColor="#FF8A04"/>
<path
android:pathData="M365.3,374.7a8,8 0,0 0,-7.5 5.1l-29,74.5a7.6,7.6 0,0 0,3.9 9.6c1.1,0.6 2.3,0.9 3.6,0.8h56.8a8.1,8.1 0,0 0,6.4 -3.1,7.6 7.6,0 0,0 1.1,-7.2l-27.8,-74.6a7.9,7.9 0,0 0,-7.6 -5.1zM366.3,255.7a28.2,28.2 0,0 1,26.7 17.5l106.6,286.9c4.6,13 -3.3,27.5 -17.7,32a29.1,29.1 0,0 1,-9.3 1.5,28.3 28.3,0 0,1 -26.7,-17.1l-20.5,-55.2a8.1,8.1 0,0 0,-7.5 -5.1L310.2,516.2a8,8 0,0 0,-7.6 5l-21.7,55.7a28.1,28.1 0,0 1,-26.2 15.9,31.5 31.5,0 0,1 -9.7,-1.5c-14.3,-4.8 -21.8,-18.8 -17.3,-31.9l112,-286.7c4,-10.1 14.6,-17.1 26.6,-17.1zM582,256c15.7,0 28.3,11.2 28.3,24.6v286.2c-0.1,13.4 -12.7,24.6 -28.3,24.6s-28.3,-11.2 -28.3,-24.6L553.6,280.7c0,-13.5 12.6,-24.7 28.3,-24.7z"
android:fillColor="#FF8A04"/>
</vector>

View File

@ -79,6 +79,7 @@
android:layout_marginEnd="20dp"
android:layout_marginBottom="20dp"
android:src="@drawable/ai_chat"
android:visibility="gone"
android:tint="#FF8A04"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />

View File

@ -358,8 +358,12 @@ Service Description\n
<string name="CZHY">Recharge Membership</string>
<string name="ServiceTermsEd">《ServiceTerms》</string>
<string name="PrivacyPolicyEd">《PrivacyPolicy》</string>
<string name="sptips">In order to implement and strengthen awareness of personal information security protection, please read the relevant agreements listed below carefully.</string>
<string name="sptips">
In order to implement and strengthen awareness of personal information security protection, please read the following relevant information carefully
1. To ensure you do not miss important notifications and updates, you need to enable the app to automatically start when your device starts. You can change this permission at any time in Settings.
2. ensure that your application works normally, the application will obtain basic information about the device, such as OAID, AndroidId, and other basic information.
3. For more detailed information on device acquisition and third-party SDK calls, please refer to the app "Privacy Policy" and "Terms of Service".
</string>
<string name="Renewal">Renewal</string>
<string name="MembershipExpiration">Membership has expired</string>
<string name="OpenConnection">Open connection</string>

View File

@ -349,7 +349,12 @@
<string name="CZHY">充值會員</string>
<string name="ServiceTermsEd">《服務條款》</string>
<string name="PrivacyPolicyEd">《隱私政策》</string>
<string name="sptips">為貫徹與加強個人信息安全防護意識,請仔細閱讀以下列出的相關協議</string>
<string name="sptips">
\u3000\u3000為貫徹與加強個人資訊安全防護意識請仔細閱讀下列相關資訊\n
\u3000\u30001.為了確保您不會錯過重要通知和更新,需要在裝置啟動時自動啟動應用程式。您可以在設定中隨時變更此權限。 \n
2.為了確保您應用正常使用應用程式會取得裝置的相關基礎資訊如:OAID,androidId等基礎資訊。 \n
\u3000\u30003.更多詳細設備取得以及三方sdk呼叫請詳見應用"《隱私權政策》"與"《服務條款》"。
</string>
<string name="Renewal">續費</string>
<string name="MembershipExpiration">會員已到期</string>
<string name="OpenConnection">開啟連接</string>

View File

@ -347,7 +347,12 @@
<string name="CZHY">充值會員</string>
<string name="ServiceTermsEd">《服務條款》</string>
<string name="PrivacyPolicyEd">《隱私政策》</string>
<string name="sptips">為貫徹與加強個人信息安全防護意識,請仔細閱讀以下列出的相關協議</string>
<string name="sptips">
\u3000\u3000為貫徹與加強個人資訊安全防護意識請仔細閱讀下列相關資訊\n
\u3000\u30001.為了確保您不會錯過重要通知和更新,需要在裝置啟動時自動啟動應用程式。您可以在設定中隨時變更此權限。 \n
2.為了確保您應用正常使用應用程式會取得裝置的相關基礎資訊如:OAID,androidId等基礎資訊。 \n
\u3000\u30003.更多詳細設備取得以及三方sdk呼叫請詳見應用"《隱私權政策》"與"《服務條款》"。
</string>
<string name="Renewal">續費</string>
<string name="MembershipExpiration">會員已到期</string>
<string name="OpenConnection">開啟連接</string>

View File

@ -382,7 +382,12 @@
<string name="jsmpri">极速模式</string>
<string name="ServiceTermsEd">《服务条款》</string>
<string name="PrivacyPolicyEd">《隐私政策》</string>
<string name="sptips">为贯彻与加强个人信息安全防护意识,请仔细阅读以下列出的相关协议</string>
<string name="sptips">
\u3000\u3000为贯彻与加强个人信息安全防护意识请仔细阅读下列相关信息\n
\u3000\u30001.为了确保您不会错过重要通知和更新,需要在设备启动时自动启动应用。您可以在设置中随时更改此权限。\n
2.为了确保您应用正常使用应用会获取设备的相关基础信息如:OAID,androidId等基础信息。\n
\u3000\u30003.更多详细设备获取以及三方sdk调用请详见应用"《隐私政策》"与"《服务条款》"。
</string>
<string name="payConfiretips">仅支持加速境内、境外法律法规允许访问的内容,无翻墙功能,是否确认充值</string>
<string name="wf">一键连加速器</string>
@ -403,12 +408,12 @@
<string name="CurrentRoute">当前线路</string>
<string name="AIRoute">AI智能线路</string>
<string name="AIRoute">智能线路</string>
<string name="delayMS">延迟$ms</string>
<string name="delayDefault">延迟28ms</string>
<string name="RecommendedRoutes">推荐线路</string>
<string name="timeOut">线路超时</string>
<string name="deepSeekStr">AI聊天</string>
<string name="deepSeekStr">客服聊天</string>
<string name="Switching">切换中,请稍后</string>
<string name="switchManually">当前节点拥堵请手动切换</string>
<string name="SwitchingSource">请关闭加速后在进行源切换</string>

View File

@ -93,18 +93,15 @@ subprojects {
}
productFlavors {
flavorDimensions("feature")
create("6666") {
create("8279") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true")
buildConfigField("boolean", "is_tz", "false")
buildConfigField("boolean", "is_yunti", "false")
buildConfigField("String", "applicationId", "\"com.jsq.wufu\"")
buildConfigField("String", "service_url", "\"https://api.yijianlianjsq.com/\"")
buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"6666\"")
buildConfigField("String", "productId", "\"8279\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/wf",
@ -112,37 +109,15 @@ subprojects {
)
)
}
create("2222") {
create("2708") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true")
buildConfigField("boolean", "is_tz", "false")
buildConfigField("boolean", "is_yunti", "false")
buildConfigField("String", "applicationId", "\"com.jsq.wufu\"")
buildConfigField("String", "service_url", "\"https://api.yijianlianjsq.com/\"")
buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"2222\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/wf",
"APP_ICON" to "@mipmap/oneclickconnection"
)
)
}
create("9999") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true")
buildConfigField("boolean", "is_tz", "false")
buildConfigField("boolean", "is_yunti", "false")
buildConfigField("String", "applicationId", "\"com.jsq.wufu\"")
buildConfigField("String", "service_url", "\"https://api.yijianlianjsq.com/\"")
buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"9999\"")
buildConfigField("String", "productId", "\"2708\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/wf",
@ -153,7 +128,7 @@ subprojects {
}
sourceSets {
getByName("6666") {
getByName("8279") {
java.srcDirs("src/foss/java")
}
}