我正在使用 Firebase Cloud Messaging (FCM) 发送数据消息,以便我可以使用 Service Worker 处理通知。现在我使用 Service Worker 显示通知,当我单击通知时,我想复制剪贴板中的通知内容。
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler((payload)=> {
const title = payload.data.title;
const options = {
body: payload.data.body
};
return self.registration.showNotification(title,
options);
});
self.addEventListener('notificationclick', (event)=>{
console.log(event);
navigator.clipboard.writeText(event).then(function() {
console.log('Async: Copying to clipboard was successful!');
}, function(err) {
console.error('Async: Could not copy text: ', err);
});
});
Run Code Online (Sandbox Code Playgroud)
单击通知时notificationclick
触发事件。但我变得navigator.clipboard
不确定。我也在为我的网站使用安全域。我也无法使用,document.execcommand('copy')
因为无法使用 Service Worker 访问 DOM。您能否建议一种无需打开任何网址即可复制通知内容的方法?
假设我有以下 HTML 代码
<div class="12">
<div class="something"></div>
</div>
<div class="12">
<div class="34">
<span>TODAY</span>
</div>
</div>
<div class="12">
<div class="something"></div>
</div>
<div class="12">
<div class="something"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用,driver.find_elements_by_class_name("something")
那么我将获得 HTML 代码中存在的所有类。但我只想在 HTML 中的特定单词(“今天”)之后获取类。如何排除出现在特定单词之前的类。下一个 div 和类可以在任何级别。
我正在开发一个 chrome 应用程序,它应该接受来自客户端的文件并存储在本地文件系统中。我有一个 tcp 服务器,客户端需要在其中连接和发送文件。我有监听消息的 tcp 套接字监听器。现在客户端流式传输一个已知长度的文件。如何获取该文件并存储。
TCP服务器:
chrome.sockets.tcpServer.create({}, function(socketinfo){
tcpServerSocketId=socketinfo.socketId;
chrome.sockets.tcpServer.listen(tcpServerSocketId, ip, 0, function (resultCode){
if(resultCode<0)
console.log("tcp server not connected");
chrome.sockets.tcpServer.getInfo(tcpServerSocketId, function(info){
tcpServerPort=info.localPort;
sendHub("ConnectToMe "+username+" "+ip+":"+tcpServerPort);
});
chrome.sockets.tcpServer.onAccept.addListener(onAccept);
});
});
Run Code Online (Sandbox Code Playgroud)
TCP监听器:
chrome.sockets.tcp.onReceive.addListener(function(info) {
if(info.socketId!=socketId){
onReceivefromClient(info.socketId, info.data);
}
else{
// console.log(ab2str(info.data));
var result=ab2str(info.data).split(" ");
if(result[0]=="$Lock")
proceed(info.data);
}
// sendHub("ConnectToMe 98765432 10.147.231.130:58060");
});
Run Code Online (Sandbox Code Playgroud)