获取一个 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 支持的尝试的主要内容,如果未能解决你的问题,请参考以下文章