1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <!-- /pages/webview/webview.vue -->
- <template>
- <web-view :src="src" @message="onMessage"></web-view>
- </template>
-
- <script>
- import configService from "@/common/service/config.service.js";
- import api from "@/api/api";
- export default {
- data() {
- return {
- src: ''
- };
- },
- methods:{
- onMessage(event) {
- uni.showModal({
- content: JSON.stringify(event.detail),
- showCancel: false
- });
- },
- // onMessage(e) {
- // // 通过 e.detail.data 可以获取到网页发送过来的数据
- // // 如果要监听URL变化,可以在这里处理
- // console.log('网页发送的数据:', e.detail.data);
- // }
- },
- watch:{
- src(value){
- if(value.indexOf("ticket") !=-1) {
- this.$destroy();
- var tourl = configService.apiUrl;
- try {
- new Promise((resolve, reject) => {
- api
- .validateCasLogin({
- ticket: value.substring(value.indexOf("ticket")+7,value.length),
- service: tourl,
- })
- .then((response) => {
- if (response.data.code == 200) {
- uni.setStorageSync(ACCESS_TOKEN, response.data.result.token);
- } else {
- reject(response);
- }
-
- uni.navigateTo({
- url: "/pages/home/home",
- });
- })
- .catch((error) => {
- console.log("catch===>response", response);
- reject(error);
- });
- });
-
- } catch (e) {
- }
- }
- }
- },
- onLoad(option) {
- // 获取传递过来的url参数
- let optionurl = option.url;
- if(option.url.indexOf("ticket") !=-1){
- console.log("option.url======"+option.url)
- this.src = decodeURIComponent(optionurl);
- }
- }
- };
- </script>
|