如何从Safari浏览器的应用扩展中获取选定的文字?

时间:2019-09-20 15:13:11

标签: 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 });
}

0 个答案:

没有答案