iOS 共享扩展:通过 Safari 中的上下文菜单共享时获取页面的 URL

swiftIOS

1个回答

写回答

kabutoagito

2025-06-15 17:40

+ 关注

IOS
IOS

IOS 共享扩展:通过 Safari 中的上下文菜单共享时获取页面的 URL

IOS设备上,通过共享扩展可以方便地将信息从一个应用分享到另一个应用。其中,通过Safari中的上下文菜单共享,可以获取当前网页的URL,并将其传递给其他应用。本文将介绍如何 ,并提供相应的案例代码。

获取 Safari 中的上下文菜单共享 URL

要获取Safari中的上下文菜单共享URL,我们需要创建一个共享扩展,并在扩展的代码中实现相应的功能。

首先,在Xcode中创建一个新的共享扩展目标。选择“File”菜单中的“New” -> “Target”,然后选择“Share Extension”。

接下来,配置共享扩展的信息。可以设置扩展的名称、标识符等。

在共享扩展的代码中,我们需要实现一个NSExtensionContext对象的方法,该方法将返回当前共享的内容。在该方法中,我们可以获取共享的URL,并将其传递给其他应用。

下面是一个示例代码,用于获取Safari中的上下文菜单共享URL:

Swift

import UIKit

import Social

import MobileCoreServices

class ShareViewController: SLComposeServiceViewController {

override func viewDidLoad() {

super.viewDidLoad()

// 获取共享的内容

if let item = extensionContext?.inputItems.first as? NSExtensionItem,

let itemProvider = item.attachments?.first,

itemProvider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) {

itemProvider.loadItem(forTypeIdentifier: kUTTypeURL as String, options: nil, completionHandler: { [weak self] (url, error) in

if let url = url as? URL {

// 在这里处理获取到的URL

print(url.ABSoluteString)

}

self?.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)

})

} else {

extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)

}

}

}

以上代码中,我们首先获取共享的内容,然后判断是否包含URL。如果包含URL,我们可以在completionHandler中处理获取到的URL。在这个例子中,我们只是简单地打印URL的绝对字符串表示。

通过Safari中的上下文菜单共享,我们可以获取当前网页的URL,并将其传递给其他应用。本文介绍了如何 ,并提供了相应的案例代码。希望这篇文章能够帮助你理解IOS共享扩展的使用方法,并在实际开发中有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号