微信公众号ios10.1 版本白屏问题

真机调试IOS 10.1.x的版本不支持fetch 所以一直loading显示白屏。
其他设备都没问题。 所以用主要属性window.fetch用来判断是否支持fetch 属性
import {
    baseUrl
} from ‘./env‘

export default async(url = ‘‘, data = {}, type = ‘GET‘, method = ‘fetch‘) => {
    type = type.toUpperCase();
    url = baseUrl + url;

    if (type == ‘GET‘) {
        let dataStr = ‘‘; //数据拼接字符串
        Object.keys(data).forEach(key => {
            dataStr += key + ‘=‘ + data[key] + ‘&‘;
        })

        if (dataStr !== ‘‘) {
            dataStr = dataStr.substr(0, dataStr.lastIndexOf(‘&‘));
            url = url + ‘?‘ + dataStr;
        }
    }

    if (window.fetch && method == ‘fetch‘) {
        let requestConfig = {
            credentials: ‘include‘,
            method: type,
            headers: {
                ‘Accept‘: ‘application/json‘,
                ‘Content-Type‘: ‘application/json‘,
        ‘Authorization‘: localStorage.getItem(‘token‘),
            },
            mode: "cors",
            // cache: "force-cache"
        }

        if (type == ‘POST‘) {
            Object.defineProperty(requestConfig, ‘body‘, {
                value: JSON.stringify(data)
            })
        }

        try {
            const response = await fetch(url, requestConfig);
            const responseJson = await response.json();
            return responseJson
        } catch (error) {
            throw new Error(error)
        }
    } else {
        return new Promise((resolve, reject) => {
            let requestObj;
            if (window.XMLHttpRequest) {
                requestObj = new XMLHttpRequest();
            } else {
                requestObj = new ActiveXObject;
            }

            let sendData = ‘‘;
            if (type == ‘POST‘) {
                sendData = JSON.stringify(data);
            }

            requestObj.open(type, url, true);
            requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            requestObj.setRequestHeader("Accept","application/json");
      requestObj.setRequestHeader("Content-Type","application/json");
      requestObj.setRequestHeader("Authorization",localStorage.getItem(‘token‘));
            requestObj.send(sendData);

            requestObj.onreadystatechange = () => {
                if (requestObj.readyState == 4) {
                    if (requestObj.status == 200) {
                        let obj = requestObj.response
                        if (typeof obj !== ‘object‘) {
                            obj = JSON.parse(obj);
                        }
                        resolve(obj)
                    } else {
                        reject(requestObj)
                    }
                }
            }
        })
    }
}

原文地址:https://www.cnblogs.com/wupeng88/p/11818670.html

时间: 2024-10-31 04:41:16

微信公众号ios10.1 版本白屏问题的相关文章

vue解决IOS10低版本白屏问题

一.在build文件的webpack.prod.conf.js文件添加以下代码 new UglifyJsPlugin({ uglifyOptions: { compress: { warnings: false }, //处理I0S10白屏 mangle: { safari10: true }, }, sourceMap: config.build.productionSourceMap, parallel: true }), 原文地址:https://www.cnblogs.com/angel

贴吧无耻霸屏技术! 几万阅读量的微信公众号都偷偷的使用它

有时候发现!不是自己要专注一件事情就会有结果,而是你一开始做的项目或者做的事情能让你有回报,并且你能继续的做下去.最近我总觉得死磕是一个不应该说的词!我们死磕是因为我们看到希望,我们的付出有回报!如果一件事你死磕了2个月没有任何希望,激情都没有了!还是放弃吧!我开始专注于贴吧完全是我的付出得到了回报!然后开始专心的做!经常凌晨的时候在贴吧打转!然后偶遇发现了另外一个更好的霸屏技术!这个方法更加的简单暴力,更加的快速.基本都不用考虑防删处理!直接就是任性的狂发上去的!! 这个也是机缘巧合发现的!然

微信公众号支付 js api java版本

说起来.微信支付真是一堆坑. 居然官网都没有java版本的完整代码. 就算是php版本的.还都有错误.且前后各种版本.各种文档一大堆....不停的误导开发人员. 花了一天半时间.总算实现了微信公众号支付.和pc端的微信扫码支付.其他不说了.直接给思路 本人做的是微信V3版本的微信支付.微信的官方文档中.提供的demo 只有一些工具类.这些类还是很有作用的. https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course3_tmp

微信公众号开发--视频不全屏展示

微信公众号开发时,写video标签引入视频后,点击播放,会默认全屏播放,使得开发人员写的其他元素被覆盖掉. 可以通过一些属性来实现视频不默认全屏播放,( x5-playsinline playsinline webkit-playsinline)代码如下: <video src="" autoplay controls preload="auto"  x5-playsinline playsinline webkit-playsinline></v

基于搜狗搜索的微信公众号爬虫实现(C#版本)

Author: Hoyho Luo Email: [email protected] Source Url:http://here2say.me/11/ 转载请保留此出处 本文介绍基于搜狗的微信公众号定向爬虫,使用C#实现,故取名WeGouSharp.本文中的项目托管在Github上,你可以戳WeGouSharp获取源码,欢迎点星.关于微信公共号爬虫的项目网上已经不少,然而基本大多数的都是使用Python实现 鉴于鄙人是名.NET开发人员,于是又为广大微软系同胞创建了这个轮子,使用C#实现的微信

微信公众号接口类(PHP版本)

[项目需求] 通过微信提供的接口,实现微信公众号与后端的应用程序数据交互.消息响应等功能. [项目疑难点] 理解接口工作方式,统一接口API,响应速度.安全性等 [代码举例] WeixinApi.class.php  微信公众号接口基类 [php] view plain copy <?php /** * 微信API 公用方法 * * PHP version 5 * * @category    Lib * @package     COM * @subpackage  GZNC * @autho

解决微信公众号accessToken白名单问题

获取微信公众号accessToken需要服务器ip配置白名单,但部分客户服务器没有固定ip,因而经常会出现因为ip白名单问题而获取不到公众号的accessToken. 解决办法:proxy代理 public String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + p

微信公众号支付(提供MVC版本)

一:获取微信支付 MCHID,KEY,APPID,APPSecret 四个支付关键值.      微信支付商户平台 https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F  1.登录微信支付商户平台获取到商户号(MCHID),  2.在"账号中心"栏目下"API安全"栏目里设置API密钥(KEY)   微信公众号: https://mp.weixin.qq.com/     1.登录微信公

微信公众号的开发教程Java版本

1.首先,去官网注册一个微信公众号 2.点击开发者中心,填写服务器配置信息 3.通过ngrok来映射本地的请求到服务器端 4.通过代码来验证请求,并给出相应的回复,不多说,贴代码 package com.weixin.action; import java.io.IOException; /* * 第一次请求的时候是get请求,用户验证 * 第二次请求就是Post请求,传递消息和返回消息 */ import java.io.PrintWriter; import java.util.Map; i