慎读服务中心
慎读服务中心
  • 发布:2022-12-28 15:37
  • 更新:2023-08-17 22:41
  • 阅读:494

运行至百度小程序vendor.js文件中包含uni.login,不符合swan.login非兼容性改造

分类:uni-app

具体体现:
function _Ss() {
...
case 4:
_context53.next = 6;
return new Promise(function (e, t) {
uni.login({
success: function success(t) {
e(t.code);
},
fail: function fail(e) {
t(new Error(e.errMsg));
}
});
});
...
}
源码中百度小程序未包含uni.login,找不到编译到此的方法是哪来的,咨询下官方。

2022-12-28 15:37 负责人:DCloud_uniCloud_WYQ 分享
已邀请:

最佳回复

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

临时解决方案,在项目根目录添加 vue.config.js 文件,内容如下

module.exports = {  
  chainWebpack: (config) => {  
    config.optimization.minimizer('terser').tap((args) => {  
      const compress = args[0].terserOptions.compress  
      compress.passes = 2  
      compress.reduce_funcs = true  
      compress.reduce_vars = true  
      return args  
    })  
  }  
}

再修改一下HBuilderX内置的uni-app编译插件的babel配置HBuilderX/plugins/uniapp-cli/babel.config.js
注释掉55行的if块

// if (process.env.UNI_PLATFORM !== 'h5') {  
// plugins.push('@babel/plugin-transform-runtime')  
// }

将58行的config对象修改为

const config = {  
  presets: [  
    [  
      '@vue/app',  
      {  
        modules: webpack.version[0] > 4 ? 'auto' : 'commonjs',  
        useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry',  
        exclude: ['h5', 'app-plus'].includes(process.env.UNI_PLATFORM) ? undefined : ['@babel/plugin-transform-async-to-generator', '@babel/plugin-transform-regenerator']  
      }  
    ]  
  ],  
  plugins  
}

注意此修改关闭了uni-app对部分es6语法的转化,如有需要请在小程序开发工具内开启es6到es5的转化

慎读服务中心
慎读服务中心

慎读服务中心 (作者)

有人咩?

DCloud_UNI_WZF

DCloud_UNI_WZF

这个问题是百度小程序代码审查的问题,uniapp框架侧已经处理该问题(uni.login 转为 swan. getLoginCode),但某些情况下还是会有这个警告,可以改用 uni. getLoginCode

  • 慎读服务中心 (作者)

    就是已经改过,百度智能小程序是在回调中使用swan. getLoginCode进行登录,页面中是不存在uni.login方法的。但是vendor.js中还是存在一个uni.login方法,也不知道从哪编译的。上个版本没有这个问题,是更新最新版本后重新出现的

    2022-12-29 18:29

  • DCloud_UNI_WZF

    回复 慎读服务中心: 检查下代码编写,如确认框架问题,提供下测试工程

    2022-12-29 19:42

  • 慎读服务中心 (作者)

    回复 DCloud_UNI_WZF: 文件搜索过,除登录页中条件编译里(非MP-BAIDU条件)存在uni.login方法外,没有其他任何页面存在uni.login方法。搞不明白问题出在哪

    2023-01-01 00:10

  • DCloud_UNI_WZF

    回复 慎读服务中心: 检查下条件编译是否正确,如确认框架问题,提供测试工程

    2023-01-02 18:45

  • 慎读服务中心 (作者)

    回复 DCloud_UNI_WZF: 怎么给?把代码全部给你们?

    2023-01-04 21:22

  • DCloud_UNI_WZF

    回复 慎读服务中心: 新建默认模板项目,复现你的问题,然后该工程的压缩包通过附件上传

    2023-01-04 21:28

  • 慎读服务中心 (作者)

    回复 DCloud_UNI_WZF: OK

    2023-01-04 21:36

  • 慎读服务中心 (作者)

    回复 DCloud_UNI_WZF: 已上传

    2023-01-05 21:29

慎读服务中心

慎读服务中心 (作者)

问题复现项目

慎读服务中心

慎读服务中心 (作者)

请问,有修复方案了么?

  • 慎读服务中心 (作者)

    “DCloud_uniCloud_WYQ”同学提供的临时解决方案,会引发其他问题。

    2023-02-18 10:51

慎读服务中心

慎读服务中心 (作者)

....

l***@qq.com

l***@qq.com

同样的问题,不管是用swan.getLoginCode还是uni.getLoginCode,发布到百度小程序都是提示“swan.login非兼容性改造”,版本3.7.3.20230223

a***@lanxiniu.com

a***@lanxiniu.com

麻烦看一下,按照上面的最佳回复处理完还是有提示?具体怎么处理?

龙归大海

龙归大海 - 龙归大海虎归山,琨玉秋霜赴流年!

也遇到了这个问题

  • DCloud_uniCloud_WYQ

    按照最佳回复里面操作就行,这个问题是已经解决的

    2023-08-18 11:06

  • 龙归大海

    回复 DCloud_uniCloud_WYQ: 好的谢谢,试了下确实可以,必须要发行编译才可以,运行不行,总算解决了

    2023-08-23 10:09

要回复问题请先登录注册