iOS 13 HBuilder 5+ App不能跨域登录的问题

最近我们的APP遇到不能登录的问题,提示登录成功,但登录状态没有生效,APP是用HBuilder打的5+的包。这个问题好像是iOS 13发布正式前不久出现的。

iOS有UIWebview和WKWebview两种webview,从iOS13开始苹果将UIWebview列为过期API。

HBuilderX 2.2.5+版本已将iOS上所有webview的默认内核由UIWebview调整为WKWebview。

由于WKWebview内核比起UIWebview有更多的限制,比如跨域请求和Cookie,导致极端情况下登录成功后状态不生效,比如一些打的本地包的5+App,就是跨域的Cookie,这种情况下就登录不上。我们的APP就是这个问题。

解决办法:

  1. session/cookie改用Token验证方式,本地存储用localStorage

  2. 改用原来的UIWebvie内核,需要修改mainfest.json文件,修改如下

"plus": {
        "kernel": {
            "ios": "UIWebview"
        },
        // ...
    }

第一种方式比较费时间,但一劳永逸,第二种是临时性的方式,苹果新规实施后就不能再提交App Store了。

Leave a Comment

豫ICP备19001387号-1