莫不静好
莫不静好
  • 发布:2022-07-14 18:04
  • 更新:2023-03-05 09:03
  • 阅读:1422

uniapp autoBackButton app iOS下点击返回按钮无效

分类:uni-app

uniapp自带的导航,在iOS app中返回按钮点击无效,iOS下h5是可以返回的,安卓也可以,请问这是什么原因

2022-07-14 18:04 负责人:DCloud_iOS_WZT 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

测试并未复现该问题,请参考提交Bug模板提供 HBuilderX 版本,ios 系统版本等详细信息及可复现demo,谢谢~

  • 莫不静好 (作者)

    你好,请看下我在下面回复的

    2022-07-18 14:49

莫不静好

莫不静好 (作者)

我这边先加载静态文件获取后端接口地址,可能延迟去加载app了,ios端会导致返回有问题,这个有什么解决办法吗

// http拦截器,将此部分放在new Vue()和app.$mount()之间,才能App.vue中正常使用  
import httpInterceptor from '@/common/http.interceptor.js';  
common.loadConfigFile(process.env).then((res) => {  
    const app = new Vue({  
        store,  
        ...App  
    })  
    Vue.use(httpInterceptor, app);  
    app.$mount()  
});
``````javascript  
loadConfigFile(env){  
        //目前小程序没有做验证  
        return new Promise(function(resolve, reject) {  
            if (env.VUE_APP_PLATFORM == 'app-plus') {  
                plus.io.resolveLocalFileSystemURL('_www/static/project.config.json', (FileEntry) => {  
                    FileEntry.file((file) => {  
                        var fileReader = new plus.io.FileReader();  
                        fileReader.readAsText(file);  
                        fileReader.onload = function(evt) {  
                            uni.setStorageSync('biConf', evt.target.result);  
                            resolve();  
                        }  
                    })  
                });  
            } else if (env.VUE_APP_PLATFORM == 'h5') {  
                uni.request({  
                    url: './static/project.config.json', //仅为示例,并非真实接口地址。  
                    dataType: 'json',  
                    method: "GET",  
                    header: {  
                        'content-type': 'application/json'  
                    },  
                    success: (res) => {  
                        uni.setStorageSync('biConf', JSON.stringify(res.data) );  
                        resolve();  
                    },  
                    fail: (fail) => {  
                        console.info(fail);  
                        reject();  
                    },  
                });  
            }  
        })  
    }
  • DCloud_UNI_WZF

    上传下最简可复现demo,不要带着业务代码,谢谢

    2022-07-18 15:42

  • 莫不静好 (作者)

    回复 DCloud_UNI_WZF: 怎么给你demo啊,第一次提问,不太了解,不好意思

    2022-07-18 16:12

  • DCloud_UNI_WZF

    回复 莫不静好: demo 通过附件上传即可,有同事已经确认该问题,不需要提供了,感谢反馈,已加分

    2022-07-18 16:25

  • 莫不静好 (作者)

    回复 DCloud_UNI_WZF: 你们会解决是嘛,如果解决了麻烦滴我下,谢谢了

    2022-07-18 17:06

  • 莫不静好 (作者)

    回复 DCloud_UNI_WZF: 你好,今天alpha更新我试了下,第一次进app还是不行,第二次才可以

    2022-07-20 17:15

  • 莫不静好 (作者)

    回复 DCloud_UNI_WZF: 你好,我更新了还是有点问题的,第一次进app不行,第二次才可以,我们这要上线,麻烦可以在看下嘛

    2022-07-29 09:05

BoredApe

BoredApe - 有问题就会有答案。

此bug已确认。本周会发版解决。

  • 莫不静好 (作者)

    你好,我更新了还是有点问题的,第一次进app不行,第二次才可以,我们这要上线,麻烦可以在看下嘛

    2022-07-29 09:05

  • BoredApe

    回复 莫不静好: 请更新HBuilder X到最新Alpha(v3.5.3)版

    2022-07-29 09:07

  • 莫不静好 (作者)

    回复 BoredApe: 已经更到最新了,就是杀掉app进程第一次进去还是返回不了,第二次进去才可以

    2022-07-29 09:18

  • BoredApe

    回复 莫不静好: 更新的版本是我发的这个版本嘛?,更新之后是否重新打包

    2022-07-29 09:22

  • 莫不静好 (作者)

    回复 BoredApe: 就是你发的这个v3.5.3的版本,我是真机测试,运行到ios app基座的

    2022-07-29 09:24

  • BoredApe

    回复 莫不静好: 你打一个自定义基座试试

    2022-07-29 09:25

  • 莫不静好 (作者)

    回复 BoredApe: 用自定义基座试了,始终都返回不了了

    2022-07-29 09:39

  • BoredApe

    回复 莫不静好: 你试试我下面发的测试工程是否能重现问题。先点击下方跳转页面的按钮返回是否正常,然后再 点击重启APP后测试页面返回是否正常

    2022-07-29 09:43

BoredApe

BoredApe - 有问题就会有答案。

试试这个测试工程可以重现嘛

  • 莫不静好 (作者)

    你好,我可以加个qq问下吗,我的15.3.1的系统好像有点问题

    2022-07-29 10:45

  • 莫不静好 (作者)

    你好,麻烦看下下面的回复,我在你给我的测试包里加了echarts和common.js返回就不可以了,我的ios系统是15.6

    2022-07-29 13:24

  • BoredApe

    回复 莫不静好: 你先别加其他的东西。按照我上面的回复 是否能重现(重启后)

    2022-07-29 14:40

  • 莫不静好 (作者)

    回复 BoredApe: 不加东西可以

    2022-07-29 15:02

  • BoredApe

    回复 莫不静好: 你加了之后的测试工程发上来

    2022-07-29 15:05

  • 莫不静好 (作者)

    回复 BoredApe: 你好,我下面发了项目,还有我测试的一些机型

    2022-07-29 16:04

莫不静好

莫不静好 (作者)

import common from '@/common/common.js';  
import * as echarts from 'echarts';  
Vue.prototype.echarts = echarts  

common.loadConfigFile(process.env).then((res) => {  
    const app = new Vue({  
        ...App  
    })  
    app.$mount()  
});
``````javascript  
const common = {  
    //加载配置文件  
    loadConfigFile(env) {  
        //目前小程序没有做验证  
        return new Promise(function(resolve, reject) {  
            if (env.VUE_APP_PLATFORM == 'app-plus') {  
                plus.io.resolveLocalFileSystemURL('_www/static/config/config.json', (FileEntry) => {  
                    FileEntry.file((file) => {  
                        var fileReader = new plus.io.FileReader();  
                        fileReader.readAsText(file);  
                        fileReader.onload = function(evt) {  
                            uni.setStorageSync('biConf', evt.target.result);  
                            resolve();  
                        }  
                    })  
                });  
            } else if (env.VUE_APP_PLATFORM == 'h5') {  
                uni.request({  
                    url: './static/config/config.json', //仅为示例,并非真实接口地址。  
                    dataType: 'json',  
                    method: "GET",  
                    header: {  
                        'content-type': 'application/json'  
                    },  
                    success: (res) => {  
                        uni.setStorageSync('biConf', JSON.stringify(res.data));  
                        resolve();  
                    },  
                    fail: (fail) => {  
                        console.info(fail);  
                        reject();  
                    },  
                });  
            }  
        })  
    }  
}  

module.exports = {  
    ...common  
}
莫不静好

莫不静好 (作者)

测试

机型:苹果6sp 版本:15.6 经测试可以返回

机型:苹果X 版本:14.8.1 经测试不可以返回

机型:苹果Xs 版本:15.6 经测试不可以返回 12.8版本可以返回

  • BoredApe

    没能重现问题

    2022-07-29 17:21

DCloud_iOS_WZT

DCloud_iOS_WZT

看下私信 我给你看下这个问题

DCloud_iOS_WZT

DCloud_iOS_WZT

我看你示例代码 你进入app必须等接口返回数据吗? 首次安装的时候没有网络你怎么进入app啊?

1***@qq.com

1***@qq.com - 这个前端正在扣腚

你好,我也遇到该问题了,Hbuilderx最新版本,也是IOS端点击原生导航返回按钮无效

  • 1***@qq.com

    卸载app后重新安装了一下就可以了

    2022-09-03 11:53

Payton

Payton

我也遇到同样的问题:我是需要做开屏广告,在挂载 app 之前需要等待请求完广告配置的 API。
安卓端没有问题,iOS 点击左上角返回按钮,没有响应(不能返回上一页)。

你可以改为用 async 和 await 的形式。

const init = async () => {  
  try {  
    common.loadConfigFile(process.env);  
  } catch (e) {  
    console.log(e);  
  }  

  const app = new Vue({  
    ...App,  
  });  
  app.$mount();  
};  

init();

要回复问题请先登录注册