uni-app 如何获取webview的cookie 比如webview地址是淘宝的 登录后需外部获取其cookie

uni-app 如何获取webview的cookie 比如webview地址是淘宝的 登录后需外部获取其cookie

请教下uniapp 如何获取webview的cookie 比如我webview地址是淘宝的,登录淘宝后需要在外部获取webview的cookie

3 回复

更多关于uni-app 如何获取webview的cookie 比如webview地址是淘宝的 登录后需外部获取其cookie的实战教程也可以访问 https://www.itying.com/category-93-b0.html


请教一下你解决了吗

在uni-app中获取Webview中的Cookie,尤其是像淘宝这样的第三方网站,确实是一个具有挑战性的任务。由于安全和隐私的原因,现代浏览器和Webview通常不允许跨域访问Cookie。不过,有一些变通的方法可以尝试,但需要服务端支持和一些Web技术的配合。

以下是一个基本的思路,通过服务端代理和JavaScript接口来获取Cookie,但请注意,这种方法可能违反淘宝的服务条款或隐私政策,仅供学习和研究目的。

服务端代理

  1. 设置服务端代理:首先,你需要在你的服务器上设置一个代理,用于转发Webview的请求。

  2. 修改Webview请求:在uni-app中,将Webview的URL指向你的服务端代理地址,而不是直接指向淘宝。

  3. 服务端获取Cookie:当你的服务端代理请求淘宝页面时,它可以获取并存储响应头中的Set-Cookie信息。

  4. 返回Cookie给客户端:你的服务端可以通过一个API接口将Cookie返回给uni-app客户端。

示例代码

服务端(Node.js + Express)

const express = require('express');
const request = require('request');
const app = express();

app.use('/proxy', (req, res) => {
    const url = req.query.url;
    request(url, (error, response, body) => {
        if (!error && response.statusCode == 200) {
            // Store cookies from Set-Cookie header if needed
            const cookies = response.headers['set-cookie'];
            // Pass cookies back to client via a custom response or save them for later use
            res.json({ cookies });
        } else {
            res.status(response.statusCode).send(body);
        }
    });
});

app.listen(3000, () => {
    console.log('Proxy server is running on port 3000');
});

uni-app 客户端

// 假设你的代理服务器运行在 http://localhost:3000
const proxyUrl = `http://localhost:3000/proxy?url=https://www.taobao.com`;

// 在Webview中加载代理URL
uni.createWebViewContext(proxyUrl, this, (res) => {
    // 这里不能直接获取Cookie,需要通过服务端接口获取
    uni.request({
        url: 'http://localhost:3000/getCookies', // 假设你有一个接口返回之前存储的Cookie
        success: (response) => {
            console.log('Cookies from Taobao:', response.data.cookies);
        }
    });
});

注意

  • 这种方法依赖于你能够控制一个服务端,并且该服务端能够合法地请求淘宝网站。
  • 淘宝可能有反爬虫机制,会阻止或限制来自代理的请求。
  • 始终遵守目标网站的服务条款和隐私政策。

在实际开发中,强烈建议避免直接尝试获取第三方网站的Cookie,而是寻求官方API或合作途径。

回到顶部