梦里追逐
梦里追逐
  • 发布:2020-08-25 13:46
  • 更新:2024-04-16 10:45
  • 阅读:6863

请教一下大佬们,uniapp的web-view怎么setCookie?

分类:uni-app

请教一下大佬们,uniapp的web-view怎么setCookie?
我们用uniapp开发的app调用三方的h5页面
需要把登录态cookie带过去
不知道如何在uniapp中实现

2020-08-25 13:46 负责人:无 分享
已邀请:

最佳回复

1***@qq.com

1***@qq.com - 90后码农

你好 你是在三方的h5页面实现的登录然后想把cookie带到uniapp中,还是在uniapp中实现登录然后共享cookie给第三方h5页面呢 没明白

  • 梦里追逐 (作者)

    在uniapp中实现登录然后共享cookie给第三方h5页面

    2020-08-26 14:11

  • 梦里追逐 (作者)

    在uniapp中实现登录然后共享cookie给第三方h5页面,这样的话三方h5才能读取到登录态然后自动登录

    2020-08-26 14:13

  • 1***@qq.com

    回复 梦里追逐: 官方大神qq上说你的问题和我的类似,让我指点一二,其实我的业务和你的正好相反。不过我给你提供一个思路,可行不可行我也没试过。将web-view组件用plus.webview.create替代,然后用 evalJS注入设置cookie的脚本,从而达到给第三方页面设置cookie的效果,要是可行麻烦给我也说一下.

    2020-08-26 14:23

  • 梦里追逐 (作者)

    回复 1***@qq.com: 大佬,可以的 我把代码贴出来了

    2020-08-26 14:54

  • 1***@qq.com

    回复 梦里追逐: 可以的!

    2020-08-26 14:55

  • 梦里追逐 (作者)

    回复 1***@qq.com: 大佬 不好意思哈,我后面又回归测试了一下,不知道什么原因 偶尔可以 偶尔失效

    2020-09-11 17:09

  • 1***@qq.com

    回复 梦里追逐: 你这这种情况一般是js注入时机相比第三方页面渲染速度有时候快有时候慢造成的,快则正常,貌似无解!

    2020-09-23 16:26

9***@qq.com

9***@qq.com

这个操作 666 我也想知道

梦里追逐

梦里追逐 (作者)

//监听“plusready”事件    
            document.addEventListener("plusready", function() {  
                // var wvB = plus.webview.currentWebview();  
                var wvB = plus.webview.create('https://1x.fuyou.online', 'xiaoShop', {  
                    top: '44px',  
                    bottom: '44px'  
                })  
                console.log(JSON.stringify(wvB))  
                wvB.evalJS('document.cookie ="sid=bbcf2ee460fb405d928218ad35;path=/;domain=1x.fuyou.online"')  
                wvB.show()  
            }, false);
  • 1***@163.com

    修改网页storage 数据如何操作呢

    2021-05-14 11:48

  • 2***@qq.com

    非常感谢楼主的分享,我用这段代码可以设置cookie访问了,暂时没出现不稳定的问题,请问楼主这种方式在后续版本中还有不稳定的问题吗?

    2021-07-01 23:14

梦里追逐

梦里追逐 (作者)

继续顶

DCloud_Android_DQQ

DCloud_Android_DQQ

2.8.8 版本是支持这个功能的。我见到别的开发者实现过。

  • 雨夜敬清秋

    只能通过url传值,无法操作window对象

    2020-08-26 11:26

  • 梦里追逐 (作者)

    大佬,有链接什么的吗

    2020-08-26 13:55

  • 梦里追逐 (作者)

    我现在用的就是2.8.8版本,但是不知道怎么用web-view设置cookie

    2020-08-26 13:56

  • DCloud_Android_DQQ

    回复 梦里追逐: 我把连接转发给那个开发者了。等他有时间教你。

    2020-08-26 14:03

梦里追逐

梦里追逐 (作者)

自己顶上去

5***@qq.com

5***@qq.com - 90后IT男

我来给个uniapp的写法研究了一天,web-view也试过,plus.runtime.openURL、plus.webview.open()等等恶心的写法都试过;
正文:
let temp = getApp().resetSetStorage(); //为对象数组可以换成自己的数据
let wv = plus.webview.create(url,'showUrl',{});
wv.onloaded = e=>{
temp.map(item=>{
wv.evalJS(localStorage.setItem('${item.key}','${item.value}'));
})
}
wv.show('slide-in-bottom',20);

l***@akulaku.com

l***@akulaku.com - fuxk

需要自己写插件吧?
android的插件可以这么写,ios的不懂。

@UniJSMethod(uiThread = true)  
    public void setCookie(String host, String value) {  
        CookieManager it = CookieManager.getInstance();  
        it.setAcceptCookie(true);  
        it.setCookie(host, value);  
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {  
            CookieSyncManager.getInstance().sync();  
        } else {  
            it.flush();  
        }  
    }
2***@qq.com

2***@qq.com

楼主请问找到解决的办法没有?

  • DCloud_Android_DQQ

    https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.setCookie

    2021-07-02 11:16

  • 2***@qq.com

    回复 DCloud_Android_DQQ: 多谢,结合楼主的,在3.x版本下用如下方法也达到了效果:

    const currentWebview = this.$scope.$getAppWebview();

    currentWebview.evalJS('document.cookie ="session.id=a3512ad9e2c54282ad371f5b0c7731e1; Path=/fast; HttpOnly; SameSite=lax"')

    2021-07-02 14:45

  • seven啸

    回复 2***@qq.com: 大佬,能贴全一点的代码吗?

    或者一个demo,我的需求是,unipp做的登录页,然后跳转webview一个h5页面,把数据存到cookit里。。

    2021-10-22 09:04

  • m***@163.com

    回复 2***@qq.com: 登录上来表示感谢,这个方法解决了我的问题。

    2021-12-30 15:29

  • 1***@163.com

    回复 m***@163.com: 请问具体怎样处理?

    2023-10-17 15:42

霜冷九州

霜冷九州

请问下怎么获取cookie呢

2***@qq.com

2***@qq.com

小程序中有什么好的处理方法吗

要回复问题请先登录注册