111 lines
3.0 KiB
Markdown
111 lines
3.0 KiB
Markdown
# 引导页
|
||
|
||
### 基于uni-app框架的swiper组件打开的时候启动。
|
||
|
||
> 首次启动展示引导页,之后启动不再展示。那么就意味着,我们需要一个标识来确定,App是否已经启动过。
|
||
|
||
> 我们可以在本地存储一个key来做为已经启动过App的标识。那么,我们在入口这里,就可以读取这个key,来决定是否展示引导页。
|
||
|
||
> 因工作繁忙目前该程序金对安卓做了适配,IOS可根据环境自己适配。谢谢
|
||
|
||
## 目录结构
|
||
* /pages/index/index.vue //入口页
|
||
### 存储key
|
||
* 向本地存储中设置launchFlag的值,即启动标识;
|
||
### 获取key
|
||
* 向本地存储中设置launchFlag的值,即启动标识;
|
||
* 获取本地存储中launchFlag的值
|
||
* 若存在,说明不是首次启动,直接进入首页;
|
||
* 若不存在,说明是首次启动,进入引导页;
|
||
|
||
```html
|
||
<view class="main">
|
||
<code-elf-guide v-if="guidePages"></code-elf-guide>
|
||
</view>
|
||
|
||
```
|
||
|
||
```javascript
|
||
import codeElfGuide from '@/components/code-elf-guide/code-elf-guide.vue'
|
||
export default {
|
||
components: {
|
||
codeElfGuide
|
||
},
|
||
data() {
|
||
return {
|
||
guidePages:true
|
||
}
|
||
},
|
||
onLoad(){
|
||
this.loadExecution()
|
||
},
|
||
methods: {
|
||
loadExecution: function(){
|
||
/**
|
||
* 获取本地存储中launchFlag的值
|
||
* 若存在,说明不是首次启动,直接进入首页;
|
||
* 若不存在,说明是首次启动,进入引导页;
|
||
*/
|
||
try {
|
||
// 获取本地存储中launchFlag标识
|
||
const value = uni.getStorageSync('launchFlag');
|
||
if (value) {
|
||
// launchFlag=true直接跳转到首页
|
||
uni.reLaunch({
|
||
url: '/pages/tabBar/component/component'
|
||
});
|
||
} else {
|
||
// launchFlag!=true显示引导页
|
||
this.guidePages = true
|
||
}
|
||
} catch(e) {
|
||
// error
|
||
uni.setStorage({
|
||
key: 'launchFlag',
|
||
data: true,
|
||
success: function () {
|
||
console.log('error时存储launchFlag');
|
||
}
|
||
});
|
||
this.guidePages = true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
```css
|
||
page,.main{
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
```
|
||
|
||
### 首页清除key,进行测试
|
||
* 清除本地存储中设置launchFlag的值,即启动标识;
|
||
* 两秒后重启APP,进行测试
|
||
```javascript
|
||
uni.showModal({
|
||
title: '清除launchFlag值',
|
||
content: '确定要清除launchFlag值,进行重启测试?',
|
||
success: function (res) {
|
||
if (res.confirm) {
|
||
console.log('用户点击确定');
|
||
// 清除缓存
|
||
uni.clearStorage();
|
||
uni.showToast({
|
||
icon: 'none',
|
||
duration:3000,
|
||
title: '清除成功2秒后重启'
|
||
});
|
||
// 两秒后重启
|
||
setTimeout(function() {
|
||
uni.hideToast();
|
||
plus.runtime.restart();
|
||
}, 2000);
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
});
|
||
``` |