1

My Fellow Community - ここで支援が必要です。これは単純なことだと確信していますが、マークが欠けているだけです。だから助けてください。

シナリオ:
Mac OS X 10.7 以降で、ブラウザとして Web ビューを使用しています。その Web ビューで、Gmail に移動します。Gmail でメッセージを作成し、1 つまたは複数のファイルを作成ボックスにドラッグ アンド ドロップします。

実際の結果:
ペーストボードには NSURL オブジェクトがあり、webview は単純に絶対文字列値を取得して、作成されたメッセージ本文に貼り付けます。検索バーなどの他の編集領域では、この動作が受け入れられます。

望ましい結果:
ドラッグでマウスオーバーしたときに HTML5 がトリガーされ、ドロップでファイルをアップロードするための適切な JavaScript がトリガーされることが望ましいです。この動作は、FireFox、Safari、および OmniWeb の動作と一致しています。

これと同じ一貫した動作を得るにはどうすればよいですか / 何を実装する必要がありますか?

私がこれまでに試したこと:

  • WebView Editing Delegate を使用して、DOMRange のマークアップを置き換えてみました
  • WebView をサブクラス化して performDragging: をオーバーライドし、DraggingSource ペーストボードを変更しました
  • WebView 設定のプライベート メソッドを使用して LocalStorage をオンにしました

注:アプリはサンドボックス化され、現在コード署名されていません。

では、何が欠けているのか、それとももっと良いのか、どこから始めてどこで終わるのでしょうか?

PS私は非常に多くのことを試しましたが、これまでに試した役に立たないコードスニペットでこの質問を混乱させたくありませんでした。ただし、解決した場合は、他のすべての結果を投稿します。

4

1 に答える 1

2

少年私はばかげていると感じます。解決策は単純でしたが、明白ではありませんでした。

答えは、webviewのユーザー エージェント文字列でした。

ここに役立つ情報のリンクがあります。 http://www.useragentstring.com/

ユーザーエージェント文字列を分析して、準拠していることを確認することをお勧めします。

次の例を見てください:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/xxx.xx (Gecko のような KHTML) MyApp/xxx Safari /xxx.xx

注:「xxx.xx」はアプリ キットのバージョンです (これについては詳しく説明しません)。

修正は最後にある識別子です「Safari」その他はFirefox などに動作します

ハッピーコーディング!これが誰かを助けることを本当に願っています。

于 2013-03-08T21:43:41.000 に答える