私はUIWebView
です。私はios11
ドラッグアンドドロップ機能を実装しようとしています。 Safariから項目をドラッグしてUIWebView
にドロップすると、どのデリゲートメソッドが呼び出されるかを知りたいと思います。助言がありますか?iOS 11のUIWebviewドロップを検出するにはどうすればよいですか?
答えて
UIDragInteractionDelegate & UIDropInteractionDelegateプロトコルはあなたが探しているものです。
チェックだけでなく、このうち:How to Drop Images in UIViewController with UIDropInteraction (Ep 1)
これは通常のUIViewのドラッグアンドドロップ用です。 –
のUIWebViewの機能のほとんどがUIWebBrowserViewと呼ばれる文書化されていないクラスで実装されています。その 'インタラクション'プロパティが設定されているビューとそのインタラクションのデリゲートは、同じUIWebBrowserViewに設定されています。
1)あなたがドロップを検出するために、Web表示の内容ではJavaScriptを使用することができます。
必要に応じて、ドロップを検出するための3つのオプションがあります。これは次のようになります。
document.addEventListener('drop', function() {
// Drop detected
}) ;
2)UIWebBrowserViewでドロップ操作を無効にすることができます。これにより、それらのビューを含むビューの1つに伝播させることができます。そこに独自のインタラクションを追加できます。あなたがあなた自身の対話を作成し、コンテナビューに追加することができ、ことをやったら
webView.scrollView.subviews[0].interactions = @[] ;
::それは次のようになり
UIDropInteraction *dropInteration = [[UIDropInteraction alloc]initWithDelegate:myController] ;
[webView addInteraction:dropInteration] ;
webView.userInteractionEnabled = YES ;
をあなたはその後、「中UIDropInteractionDelegate機能を実装しますmyController」
3)あなたはUIWebBrowserViewをスウィズル、自分の持つUIDropInteractionDelegateメソッドを置き換えることができます。
私は2と3がうまくいくとは思っていません。私は最初の選択肢を試しています。ドロップしたテキストや画像をjsでどのように取得できますか? –
実際、私は '2'と '3'の両方を動かすことができましたが、あなたと同じ障害に遭遇したので、私は「1」を得ることができませんでした。私は落とされているオブジェクトを特定することができませんでした。 JavaScriptのスキルは限られていますが、javascriptを使用してドロップされたオブジェクトに関する情報を取得することは可能でしょうか。私はちょうどそれを行う方法を知らない。 私は、ドロップのデフォルトの動作を無効にするために1行であるため、 '2'に定住しました。私は既存のインタラクションのクラスをチェックし、dropInteractionだけを削除することによって、デフォルトのドラッグインタラクションを保持することさえできました。 –
はい私はあなたが提案した2番目のオプションを試しています。私はまた、データを実行中に落としています。 UIWebViewをドラッグするとカーソルを移動できますか?あなたはそれをやりましたか?また、どのようにコンテンツをアニメートするのですか? –
- 1. UIWebViewで検索するにはどうすればよいですか?
- 2. 他のアプリがiOS 11でスライドオーバーとして実行されているかどうかを検出するにはどうすればよいですか?
- 3. IOSでフィンガーサイズを検出するにはどうすればいいですか?
- 4. iOS 11の公式リリース前にアプリを提出するにはどうすればよいですか?
- 5. uiWebViewでjavascript操作の起動を検出するにはどうすればよいですか?
- 6. デバイスがルート(Android)かjailbroken(iOS)かどうかを検出するにはどうすればよいですか?
- 7. iOSシミュレータを最新のiOS 11ベータ版に更新するにはどうすればよいですか?
- 8. iOS 11「ニュースアプリ」のような大きなナビゲーションバーをカスタマイズするにはどうすればよいですか?
- 9. iOSでマイクの許可を与えるユーザーを検出するにはどうすればよいですか?
- 10. UIWebViewページからiOSアプリケーションへの応答を取得するにはどうすればよいですか?
- 11. iOSで日付のメタフォーマット検出を無効にするにはどうすればよいですか?
- 12. SwiftでiOSで複数行のキーボードペーストイベントを検出するにはどうすればよいですか?
- 13. iOSでのインターネット接続の変更を検出するにはどうすればよいですか?
- 14. iosでビーコンのバッテリーのパーセンテージを検出するにはどうすればよいですか?
- 15. iOSでUUIDを知らずにibeaconデバイスを検出するにはどうすればよいですか?
- 16. アプリ全体でiOS 11のドラッグを無効にするにはどうすればよいですか?
- 17. タップイベントをuiwebviewに添付するにはどうすればよいですか?
- 18. Wurflを使ってすべてのiOSデバイスを検出するにはどうすればよいですか?
- 19. ユーザーが使用しているiOSデバイスを検出するにはどうすればよいですか?
- 20. iOSで毎日最初の起動を検出するにはどうすればよいですか?
- 21. iOS 11でUISearchControllerの下の行を削除するにはどうすればよいですか?
- 22. エスケープキーのKeyboardEventを検出するにはどうすればよいですか?
- 23. IPropertyBagのプロパティを検出するにはどうすればよいですか?
- 24. フラッシュのブラウザサポートを検出するにはどうすればよいですか?
- 25. アプリケーションのクローズを検出するにはどうすればよいですか?
- 26. IOSのセルタワーの変更を検出するにはどうすればよいですか?
- 27. iOSのuiwebviewでbody要素全体のonclickイベントを検出するにはどうすればよいですか?
- 28. C++でランタイムエラーを検出するにはどうすればよいですか?
- 29. フリーズスイッチでボイスメールを検出するにはどうすればよいですか?
- 30. navigationController.viewでタッチを検出するにはどうすればよいですか?
私は、モバイルデバイス - 1と思います。Safariはドラッグ操作を許可していない可能性があります。 - 2.ドラッグ操作で2つのアプリケーションを切り替えることはできません。この操作をモバイルデバイスのウェブブラウザで参照してください。 – Krunal
私はiPadプロで試しています@Krunal –