webview で Javascript との双方向通信が可能な iOS Web ブラウザーを実装したとします。モバイル Safari のように、iOS8 アクション拡張機能を動作させたい場合はどうすればよいですか? ExtensionPreprocessingJS
義務付けられたオブジェクトで関数を実行し、コールバックの結果を取得するように webview に指示することに問題はありません。しかし、どうすればそれを手に入れることができNSExtensionJavaScriptPreprocessingFile
ますか? 対象となるアプリの拡張機能を列挙できる iOS8 API は見つかりませんでした。を手に入れることが少なくなりInfo.plist
、実際にアプリ拡張機能のバンドルコンテンツからファイルを取得します。
私のテストアクション拡張機能を通じて、拡張機能に与えられた全体は、 Apple Action 拡張機能ドキュメントが言うextensionContext.inputItems
ことだけであることを知っています。つまり、JSが呼び出される前であっても、JS を認識して実行する必要があります。NSItemProvider
NSExtensionItemAttachmentsKey
kUTTypePropertyList
beginRequestWithExtensionContext
それとも、サードパーティのアプリが Mobile Safari と同じことをするのは本当に不可能なのでしょうか? アプリ アクセス セキュリティの観点からはある程度理にかなっていますが、それでも...ここでのキーワードは「モジュール性」と「拡張性」ですよね? Mobile Safari は、バニラの UI/WKWebView の動物よりも同等の動物として扱われますか? つまり、WKWebView
確かにいくつかのきちんとした新しい JS 機能 (evaluate
完了ハンドラーWKUserContentController
) がありますが、一般的なアクション拡張機能とどのように結び付けるのですか?