feat(ios): implement chat function (#9482)

Co-authored-by: DarkSky <darksky2048@gmail.com>
This commit is contained in:
Lakr
2025-01-02 17:35:07 +08:00
committed by GitHub
parent 72e343c379
commit 094cb1d71c
220 changed files with 7695 additions and 164 deletions

View File

@@ -44,30 +44,29 @@ extension AFFiNEViewController: IntelligentsButtonDelegate, IntelligentsFocusApe
button.beginProgress()
let script = "return await window.getCurrentDocContentInMarkdown();"
webView.callAsyncJavaScript(
script,
arguments: [:],
in: nil,
in: .page
) { result in
button.stopProgress()
webView.resignFirstResponder()
if case let .failure(error) = result {
print("[?] \(self) script error: \(error.localizedDescription)")
let upstreamReaderScript = "window.getCurrentServerBaseUrl();"
webView.evaluateJavaScript(upstreamReaderScript) { result, _ in
if let baseUrl = result as? String {
Intelligents.setUpstreamEndpoint(baseUrl)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
if case let .success(content) = result,
let res = content as? String
{
print("[*] \(self) received document with \(res.count) characters")
DispatchQueue.main.async {
let script = "return await window.getCurrentDocContentInMarkdown();"
webView.callAsyncJavaScript(
script,
arguments: [:],
in: nil,
in: .page
) { result in
button.stopProgress()
webView.resignFirstResponder()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
if case let .success(content) = result,
let res = content as? String
{
print("[*] \(self) received document with \(res.count) characters")
self.openIntelligentsSheet(withContext: res)
}
} else {
DispatchQueue.main.async {
} else {
self.openSimpleChat()
}
}