| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <template>
- <ie-page :fix-height="true">
- <ie-navbar v-if="showNavbar" :title="pageTitle" />
- <ie-auto-resizer>
- <web-view class="w-full h-full" :fullscreen="false" border="none" :src="webviewSrc" @load="handleLoad" />
- </ie-auto-resizer>
- </ie-page>
- </template>
- <script lang="ts" setup>
- import { useTransferPage } from '@/hooks/useTransferPage';
- const { prevData, transferBack } = useTransferPage();
- const showNavbar = ref(true);
- const webviewSrc = ref('');
- const pageTitle = ref('');
- const webviewParams = ref('');
- onLoad(() => {
- console.log(prevData.value)
- const { url, params, title, showNavbar: _showNavbar = true } = prevData.value
- pageTitle.value = title;
- showNavbar.value = JSON.parse(_showNavbar);
- try {
- uni.$ie.showLoading();
- if (params) {
- if (typeof params === 'string') {
- webviewParams.value = JSON.parse(params);
- } else {
- webviewParams.value = params;
- }
- webviewSrc.value = `${url}?${Object.entries(webviewParams.value).map(([key, value]) => `${key}=${value}`).join('&')}`;
- } else {
- webviewSrc.value = url;
- }
- } catch (error) {
- uni.$ie.showToast('参数错误');
- setTimeout(() => {
- transferBack();
- }, 500);
- }
- });
- const handleLoad = () => {
- uni.$ie.hideLoading();
- }
- </script>
- <style lang="scss">
- :deep(iframe) {
- width: 100% !important;
- height: 100% !important;
- border: none;
- z-index: 999;
- }
- </style>
|