Greasy Fork

Greasy Fork is available in English.

用酷安打开

解决酷安的分享链接在电脑浏览器拉起WSA版酷安的问题,通过纠正酷安URL Scheme的调用逻辑实现

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         用酷安打开
// @namespace    ShangJixin
// @version      1.1
// @description  解决酷安的分享链接在电脑浏览器拉起WSA版酷安的问题,通过纠正酷安URL Scheme的调用逻辑实现
// @author       尚寂新
// @match        https://www.coolapk.com/feed/*
// @icon         https://static.coolapk.com/static/web/v8/images/header-logo.png
// @license      MIT
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    toApp = function () {
        // 封装个跳转app的方法
        var device = navigator.userAgent.toLowerCase();
        var config = {
            // scheme:必须要有,与app里的配置scheme一致
            scheme_IOS: 'https://www.coolapk.com/qr/download?type=ios',
            scheme_Adr: 'coolmarket://feed/' + window.location.href.split('/')[4].split('?')[0],
            timeout: 1000
        };

        // 虽然是QQ与微信的打开方法,但酷安把它封装到了toAPP方法里,为了更好的兼容性还是选择留下
        if (device.indexOf('micromessenger') > 0 || (device.indexOf('mqqbrowser') > 0 && device.indexOf('status') > 0)) {
            if (device.indexOf('iphone') > 0 || device.indexOf('ipad') > 0) {
                window.location.href = 'https://www.coolapk.com/qr/download';
            } else {
                window.location.href = 'https://www.coolapk.com/qr/weixin?redirectUrl=' + encodeURIComponent(window.location.href);
            }
        }

        function openApp() {
            var startTime = Date.now();
            var ifr = document.createElement('iframe');
            // 原欠考虑的逻辑,不应将保底回落到小众的APP Store方案上,应该回落到更多设备支持的URL Scheme上来
            // ifr.src = device.indexOf('android') > 0 ? config.scheme_Adr : config.scheme_IOS;
            ifr.src = device.indexOf('iphone') > 0 || device.indexOf('ipad') > 0 ? config.scheme_IOS : config.scheme_Adr;
            ifr.style.display = 'none';
            document.body.appendChild(ifr);
            var time = setTimeout(function () {
                document.body.removeChild(ifr);
                var endTime = Date.now();
                if ((!startTime || endTime - startTime < 2040) && device.indexOf('micromessenger') <= 0) {
                    showDialog('dialog1');
                }
            }, 1000);

            window.onblur = function () {
                clearTimeout(time);//清除定时器
            }
        }
        openApp();
    };
})();