4

受け入れ基準-私はWebView に表示 する Web サイト (私のものではない) を持っています。ページのコンテンツに基づいて、ネイティブ ボタン クリックを提供したいと考えています (ボタンは問題ではありません)。

HTML コンテンツに 2 ~ 3 個の特定の URL が含まれているかどうかを確認する必要がありますURL は、ページの 2 ~ 3 か所にある可能性があります。URL が存在しない場合 (存在する場合もあれば、存在しない場合もあります)、別のコンテンツを検索して、起動する URL を作成する必要があります。

可能な解決策

  1. Objective-C-HMTL-Parser、HPPLE、ElemetParser、libxml2 で XPathQuery を使用して HTML を解析し、コンテンツを検索するスクリーン スクレイピング。長所: 簡単短所:整形式の HTML/XML が必要。ツリーを下る多くの同時検索ではおそらく遅いでしょう。
  2. 正規表現を使用します。長所:?短所:高速で読み書きが難しくなります。整形式の HTML/XML が必要です。多くの同時検索ではおそらく遅いでしょう。(RegexKit Light は試していません)。
  3. JQuery検索関数を WebView に挿入し、Objective-c から関数を呼び出します。WebViewJavascriptBridgeは、Js と ObjC の間で通信するために使用することが有望に見えます (TGJSBridge、GAJavaScript および iOS-JavaScript-Bridge Pronsも調べました: Jqueryを WebViewJavascriptBridge コードに挿入し、dele を使用して呼び出すのは 簡単です。
  4. 私が見逃した別の解決策はありますか?

私はソリューション番号に傾いています。3. WebViewJavascriptBridgeを使用して、何かを見つけたときに呼び出されるハンドラーに検索 JQuery 関数を挿入します。この検索を複数のスレッドで実行するか、ツリーを一度下って検索し、すべての検索項目を見つけることができますか?

要約

-1. 自分のものではない Web 内の (複数の) コンテンツを検索する「最良の」/最速のソリューションは何ですか?

-2. 私が見逃した別の解決策はありますか?

-3. スレッドで複数の JQuery 検索を実行し、何かが見つかるたびに結果を Objc に返すことは可能ですか?

4

1 に答える 1

0

あなたの質問#2(あなたが逃した他の方法)への回答:

解析やその他すべてのことを行うことができますが、HTMLコンテンツに特定のURLが含まれているかどうかを確認するためだけに、NSStringのrangeOfStringメソッドで十分ではないでしょうか。もちろん、URLのフォーマットと、正確に何が必要かによって異なります(URLについての言及だけを検索しますか?特定のタグ内のURLについて言及しますか?URLは、見なされるべきではない他の場所に表示される可能性がありますか?)。

しかし、あなたの質問から、タスクはもう少し複雑であることがわかりました。それで、おそらくhtmlスニペットを提供できますか?

于 2012-10-17T14:45:56.457 に答える