-
+
diff --git a/src/assets/js/appBridge.js b/src/assets/js/appBridge.js
index 31446a2..3dae8aa 100644
--- a/src/assets/js/appBridge.js
+++ b/src/assets/js/appBridge.js
@@ -49,9 +49,20 @@ export default {
* @returns {Boolean} 操作是否成功
*/
navigateBack() {
- return this.postMessageToRN({
- type: 'back'
- });
+ if (!this.isInReactNative()) {
+ return false;
+ }
+ try {
+ window.ReactNativeWebView.postMessage(JSON.stringify({
+ type: 'back',
+ data: {
+ force: false // 不强制返回,让原生端判断是否可以返回
+ }
+ }));
+ return true;
+ } catch (error) {
+ return false;
+ }
},
/**
@@ -127,9 +138,20 @@ export default {
* @returns {Boolean} 操作是否成功
*/
takeOverAndroidBack() {
- return this.postMessageToRN({
- type: 'takeOverAndroidBack'
- });
+ if (!this.isInReactNative()) {
+ return false;
+ }
+ try {
+ window.ReactNativeWebView.postMessage(JSON.stringify({
+ type: 'takeOverAndroidBack',
+ data: {
+ enabled: true
+ }
+ }));
+ return true;
+ } catch (error) {
+ return false;
+ }
},
/**
diff --git a/src/components/AndroidBackHandler.vue b/src/components/AndroidBackHandler.vue
new file mode 100644
index 0000000..d94f264
--- /dev/null
+++ b/src/components/AndroidBackHandler.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
index d42604f..cc6560e 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -12,50 +12,30 @@ import appBridge from '@/assets/js/appBridge';
import VConsole from 'vconsole';
const app = createApp(App);
-// import VConsole from 'vconsole';
-// let vconsole;
if (import.meta.env.VITE_APP_ENV !== 'production') {
const vconsole = new VConsole();
app.use(vconsole);
- // eslint-disable-next-line no-unused-vars
- // vconsole = new VConsole();
}
-// 添加 TypeScript 类型声明,在文件顶部添加
declare global {
interface Window {
onAndroidBack: (() => void) | null;
- appBridge?: any; // 同时添加 appBridge 类型声明
+ appBridge?: any;
}
}
-
+// 隐藏/显示 header
+appBridge.setHeaderShown(false);
+// 设置系统状态栏明暗主题
+appBridge.setStatusBarStyle('light');
router.beforeEach((to, from, next) => {
if (to.query.digitalYiliToken) {
utils.setSessionStorage('xToken', to.query.digitalYiliToken);
}
- // appBridge.setTitle(to.meta.title as string);
- // 设置禁止原生返回
- appBridge.takeOverAndroidBack();
- // 定义路由是否可以返回的判断
- const routerCanGoBack = () => {
- const position = router.options.history.state?.position;
- return typeof position === 'number' && position > 0;
- };
-
- // 定义调用APP返回的方法
- const callAppGoBack = () => {
- appBridge.navigateBack(); // 使用现有的navigateBack方法替代不存在的goBack方法
- };
- // 添加 Android 返回按钮监听方法
- window.onAndroidBack = () => {
- if (routerCanGoBack()) {
- router.back();
- } else {
- callAppGoBack();
- }
- };
+ // 设置 header 标题
+ appBridge.setTitle(to.meta.title as string);
next();
});
+
app.use(createPinia());
app.use(router);
app.mount('#app');
diff --git a/src/views/Home/Index.vue b/src/views/Home/Index.vue
index 354f30e..2ace324 100644
--- a/src/views/Home/Index.vue
+++ b/src/views/Home/Index.vue
@@ -8,23 +8,24 @@ import { onMounted, ref } from 'vue';
// import { showFailToast } from 'vant';
const contentShow = ref(false);
onMounted(async() => {
- if (utils.getSessionStorage('xToken')) {
- const appToken = utils.getParameter('digitalYiliToken');
- getUserInfo(appToken).then((res) => {
- if (res.data) {
- contentShow.value = true;
- utils.setSessionStorage('userInfo', res.data.data);
- } else {
- contentShow.value = false;
- showFailToast(error.response.data?.message || error.data?.message || error.message || '服务器错误');
- }
- }).catch((error) => {
- contentShow.value = false;
- showFailToast(error?.response?.data?.message || error?.message || '服务器错误');
- });
- } else {
- contentShow.value = true;
- }
+ contentShow.value = true;
+ // if (utils.getSessionStorage('xToken')) {
+ // const appToken = utils.getParameter('digitalYiliToken');
+ // getUserInfo(appToken).then((res) => {
+ // if (res.data) {
+ // contentShow.value = true;
+ // utils.setSessionStorage('userInfo', res.data.data);
+ // } else {
+ // contentShow.value = false;
+ // showFailToast(error.response.data?.message || error.data?.message || error.message || '服务器错误');
+ // }
+ // }).catch((error) => {
+ // contentShow.value = false;
+ // showFailToast(error?.response?.data?.message || error?.message || '服务器错误');
+ // });
+ // } else {
+ // contentShow.value = true;
+ // }
});
@@ -45,13 +46,13 @@ onMounted(async() => {
padding: 0 10px 60px;
background: linear-gradient(0deg, #f5f5f5 0%, #f5f5f5 84%, #a5d380 100%);
- & > :first-child {
+ &> :first-child {
display: flex;
justify-content: space-around;
border-radius: 6px;
background-color: white;
- & > div {
+ &>div {
display: flex;
flex-direction: column;
width: 50px;
diff --git a/src/views/Survey/views/Publish/Index.vue b/src/views/Survey/views/Publish/Index.vue
index 77063dd..0bd0134 100644
--- a/src/views/Survey/views/Publish/Index.vue
+++ b/src/views/Survey/views/Publish/Index.vue
@@ -5,11 +5,9 @@
-

+ alt="" />
![]()
@@ -42,8 +40,8 @@