swift - 如何从 Safari 的应用程序扩展中获取选定的文本?
问题描述
如何在 safari 应用程序扩展中从 safari 中获取选定的文本?这是我的代码,但从网页没有收到任何内容。有人有使用 Safari 应用程序扩展保存所选文本的示例代码吗?
我的 safari 是 12 版,xcode 是 10.3 版
import SafariServices
class SafariExtensionHandler: SFSafariExtensionHandler {
override func contextMenuItemSelected(withCommand command: String, in page: SFSafariPage, userInfo: [String : Any]? = nil) {
var str2 : String = "The extension received a message (\(command)) from a script injected into (\(String(describing: properties?.url))) with userInfo (\(userInfo ?? [:]))"
NSLog(str2)
do{
let documentpath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.downloadsDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
var p1 : String = documentpath[0] + "/gg1.txt"
try str2.write(toFile: p1, atomically: true, encoding: String.Encoding.utf8)
}
catch let error {
print(error)
}
}
...........
script.js 是:
'use strict';
document.addEventListener('contextmenu', (event) => {
var selectedText = window.getSelection().toString();
safari.extension.setContextMenuEventUserInfo(event,{ "selectedText": selectedText });
}
解决方案
推荐阅读
- tensorflow - tf.keras.layers.LSTM 参数的含义
- python - 如何同时启动 Miniconda 和激活环境?
- symfony4 - Symfony 4.3:覆盖来自其他 Bundle 的命令
- mongodb - MongoDB 的 $group 的算法复杂度
- fabricjs - 如何识别组内存在的图像上的点击事件?我想在呈现 json 时识别点击事件
- c++ - 如何在带有背景图像的小部件上制作隐形按钮?
- python - 向后移动时如何在正则表达式模式中的空白处停止
- listview - 增加 ListView 宽度以适应内容并删除水平滚动条
- mysql - 每次我选择 React Native 日期选择器时,我如何才能获得选定的日期、月份、年份和小时、分钟?
- python-3.x - 字典未添加到