Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ Example:
```

This development way prefer incresing your development efficiency to making an example for Eva.js learner.

## Vconsole打开方式
在非首页页面中,在手机环境里

- 设置href中search里debug=true可以开启VConsole
- 或者在屏幕上画V字也会打开VConsole
11 changes: 9 additions & 2 deletions examples/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,15 @@ if (modules[path]) {
document.title = module.name;
module.init(canvas);
})();
if (/android|phone|mobile|ipad/i.test(navigator.userAgent) && location.search.length < 1) {
new VConsole();
if (/android|phone|mobile|ipad/i.test(navigator.userAgent)) {
if (/\bdebug=true\b/.test(location.search)) {
new VConsole();
} else {
window.addEventListener('openvconsole', () => {
new VConsole();
})
import('./vopen');
}
}
} else {
const ul = document.createElement('ul');
Expand Down
67 changes: 67 additions & 0 deletions examples/vopen.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
let step: number = 0;
let checking = false;
let begin = [0, 0];
let changedTimes = 0;
let falseTimes = 0;
let now = [0, 0];
let middle = [0, 0];
let startHadler = e => {
if (checking) return;
now = begin = [e.touches[0].pageX / window.innerWidth, e.touches[0].pageY / window.innerHeight];
checking = true;
falseTimes = changedTimes = 0;
checking = true;
step = 0;
middle = [0, 0];
};
document.addEventListener('touchstart', startHadler);
let moveHandler = (e: TouchEvent) => {
if (!checking) return;
let current = [e.changedTouches[0].pageX / window.innerWidth, e.changedTouches[0].pageY / window.innerHeight];
let changed = [current[0] - now[0], current[1] - now[1]];
now = current;
changedTimes++;
if (step === 0) {
if (changed[0] < 0 || changed[1] < 0) {
falseTimes++;
}
checkStepOrOver();
} else {
if (changed[0] < 0 || changed[1] > 0) {
falseTimes++;
}
checkStepOrOver();
}
}
function checkStepOrOver() {
if (step === 0) {
if (now[0] - begin[0] > .2 && now[1] - begin[1] > .2) {
middle = now;
step = 1;
}
} else {
if (falseTimes / changedTimes > .3) return;
if (now[0] - middle[0] > .2 && middle[1] - now[1] > .2) {
document.removeEventListener('touchstart', startHadler);
document.removeEventListener('touchmove', moveHandler);
document.removeEventListener('touchcancel', endHandler);
document.removeEventListener('touchend', endHandler);
const event = document.createEvent('MessageEvent');
event.initEvent('openvconsole');
window.dispatchEvent(event);
}
}
}
document.addEventListener('touchmove', moveHandler);

let endHandler = () => {
begin = [0, 0];
now = [0, 0];
checking = false;
falseTimes = changedTimes = 0;
step = 0;
middle = [0, 0];
};
document.addEventListener('touchend', endHandler);
document.addEventListener('touchcancel', endHandler);
export default true;