获取一个 Firefox 插件来检测和模仿检查 Apple Pay 支持的尝试

Posted

技术标签:

【中文标题】获取一个 Firefox 插件来检测和模仿检查 Apple Pay 支持的尝试【英文标题】:getting a Firefox plugin to detect and mimic attempts to check for Apple Pay support 【发布时间】:2019-08-19 13:39:52 【问题描述】:

现在 Apple 的信用卡产品已经推出,我可以通过 Apple Pay 在网上购物获得 2% 的现金返还。不幸的是,我选择的浏览器是 Firefox,它还不支持 Apple Pay。

我想检测是否有人尝试检查 Apple Pay 支持,因此我可以通过某种方式提醒自己并切换 Safari 来完成我的购买。根据Apple's docs,此检查是通过window.ApplePaySession 执行的。

所以,我在扩展中尝试了以下操作:

manifest.json


    "manifest_version": 2,
    "name": "applepay",
    "version": "1.0",
    "content_scripts": [
        
            "matches": [
                "*://*/*"
            ],
            "js": [
                "applepay.js"
            ]
        
    ]

applepay.js

window.ApplePaySession = 
    canMakePayments: function () 
        console.log('canMakePayments');
        return Promise.resolve(true);
    ,
    canMakePaymentsWithActiveCard: function () 
        console.log('canMakePaymentsWithActiveCard');
        Promise.resolve(true);
    ,
;

我能够在applepay.js 中使用console.log(window) 并获取整个对象,但是我对对象的更改 似乎没有生效 - 它的行为就像window 被读取-只要。我错过了什么?

【问题讨论】:

【参考方案1】:

在 Firefox 中,内容脚本(用 WebExtensions 编写的插件)不与页面脚本(网站脚本)共享相同的上下文。

在您的内容脚本中,执行类似以下操作:

function notify(message) 
   console.log("do something");


exportFunction(notify, window, defineAs:'notify');

之后,页面脚本会看到 window.notify 存在。

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts

【讨论】:

以上是关于获取一个 Firefox 插件来检测和模仿检查 Apple Pay 支持的尝试的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 未检测到 NPAPI 插件

Selenium IDE安装和检查获取的控件路径技巧

AAAI2022基于秩模仿和预测引导特征模仿的目标检测知识蒸馏

使用Xcode开发iOS语法检查的Clang插件

如何模仿或设置 Chrome Headless 插件

Firefox 设置无法保存如何解决?