Beim Teilen aus Safari greift ein JS-Preprocessing-File (GetPageHTML.js) das gerenderte outerHTML der bereits zustimmenden Seite und legt es im neuen SharedHTMLStore (App-Group, keyed auf SHA-256(url)) ab. Die App schickt dieses HTML bei der Extraktion an /extract/preview mit — das umgeht Cookie-/Pur-Wände, die der anonyme Server-Fetch sonst extrahiert (gleicher Bypass wie das Web-Bookmarklet). - SharedHTMLStore: put/peek/remove/prune, 4,9M-Char-Cap (API-Limit), 7-Tage-TTL. HTML wird erst nach erfolgreicher Extraktion verworfen, damit ein 401/502-Retry (enrich-Sweep) es erneut nutzen kann. - ShareViewController (iOS + macOS): liest das Property-List-Result, legt HTML ab, enqueued die URL wie bisher. - project.yml: NSExtensionJavaScriptPreprocessingFile + WebPage-Activation + JS-Resource + SharedHTMLStore.swift in beide Extension-Targets. - PagetaAPI.extractPreview(url:html:) + enrichArticle konsultiert den Store. Greift nur beim Teilen aus Safari (Web-Page-Kontext); nackte URL-Shares fallen sauber auf den URL-Pfad zurück. iOS+macOS BUILD SUCCEEDED, 41/41 Tests grün (3 neue für SharedHTMLStore). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
47 lines
1.5 KiB
Text
47 lines
1.5 KiB
Text
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
<key>CFBundleDisplayName</key>
|
|
<string>In Pageta speichern</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>$(EXECUTABLE_NAME)</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleName</key>
|
|
<string>$(PRODUCT_NAME)</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>XPC!</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>0.1.0</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>1</string>
|
|
<key>ITSAppUsesNonExemptEncryption</key>
|
|
<false/>
|
|
<key>NSExtension</key>
|
|
<dict>
|
|
<key>NSExtensionAttributes</key>
|
|
<dict>
|
|
<key>NSExtensionActivationRule</key>
|
|
<dict>
|
|
<key>NSExtensionActivationSupportsText</key>
|
|
<true/>
|
|
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
|
|
<integer>1</integer>
|
|
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
|
|
<integer>1</integer>
|
|
</dict>
|
|
<key>NSExtensionJavaScriptPreprocessingFile</key>
|
|
<string>GetPageHTML</string>
|
|
</dict>
|
|
<key>NSExtensionPointIdentifier</key>
|
|
<string>com.apple.share-services</string>
|
|
<key>NSExtensionPrincipalClass</key>
|
|
<string>$(PRODUCT_MODULE_NAME).ShareViewController</string>
|
|
</dict>
|
|
</dict>
|
|
</plist>
|