問題タブ [uiwebviewdelegate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - UIWebView: 存在しないホスト名を使用すると、リクエストがタイムアウトしないのはなぜですか?
私の状況はこれです:
UIWebViewホスト名がユーザーによって提供された URL に POST 要求を行う があります。- ホスト名が存在しない場合、ユーザーに設定を確認するように警告できるように、タイムアウトする必要があります。
何が起こっている:
私は次のようなリクエストをします。
ホスト名がネットワーク上に存在しない場合、タイムアウト応答がありません。
のデリゲート メソッドをすべて実装しUIWebViewDelegateました。存在しないホスト名を使用すると、次のメソッドが順番に呼び出されます。
webView: shouldStartLoadWithRequest: navigationType:- (テストでは常に true を返します)
webViewDidStartLoad
それだけです-その後は何もありません。
が呼び出されたことに驚いていwebViewDidStartLoadます。これは、URL が見つかり、そこからデータを取得できると考えていることを示唆しているからです。しかし、URL が存在しないため、できません。
ここで何か間違ったことをしていますか?
NSTimerを使用して、タイムアウト期間内に応答が受信されたかどうかを確認する回避策を実装する予定です。ただし、リクエストのキャンセルに問題がありますUIWebViewが、それは次のSOの質問のトピックです!
だから私の質問:
webViewDidStartLoadが無効な URL で呼び出されるのは正しいですか?- リクエストをセットアップした方法で、リクエスト タイムアウト エラーが返されるのを見る必要がありますか?
前もって感謝します!!
ストレッチ:)
uitableview - UIWebView コンテンツの高さを決定する (UITableViewCell に埋め込まれている)
可変高さの を保持する UITableView がUIWebViewあり、ユーザーは各 Web ビューのコンテンツを編集できます。各セルのコンテンツ (Web ビュー) はNSManagedObject、コンテンツの高さが として格納されているサブクラスにリンクされていcontentHeightます。新しいコンテンツ セットが最初に作成されると、設定された高さを持つデフォルトのデータ セットが入力されるため、問題はありません。
私の問題は、ユーザーが Web ビューのコンテンツを編集するときに発生します。新しいコンテンツの高さを把握し、それに応じてテーブルビューを更新する必要があります。対応するオブジェクトの保存された変数を更新するためのロジックを既にセットアップしましたcontentHeightが、新しいコンテンツの高さを決定するための信頼できる方法が見つかりません。以下に、私が試したがうまくいかなかった方法のいくつかをリストしました。どんな助けでも大歓迎です、私は今1時間以上困惑しています:(
失敗した方法:
iphone - UIWebViewデリゲートが2回目に機能しない
タイトル、短いテキスト、フルサイズのテキストを含む json を返す rss フィードがあります。タイトルと短いテキストの一部が TableView に表示されます。
3 つのビューを持つ 3 つのコントローラーがあります。ビュー 1 は、json からの記事 (タイトルと短いテキスト) を含む TableView を表示します。各記事には「続きを読む」ボタンがあり、ボタンの IBAction に、viewcontroller(2) をナビゲーション コントローラーにプッシュします。コントローラーにはHTML文字列をロードするUIWebView(2番目のビュー)。文字列にはリンクが含まれています。ユーザーがリンクをタップすると、今度はリクエストを使用してモーダル ビュー コントローラーを別の WebView(3) に表示したいと思います (両方の WebView に別々のコントローラーとニブがあることに注意してください)。デリゲートは両方で適切に設定されています。コードとビジュアルツールの両方を試しました。デリゲート メソッドshouldStartLoadWithRequest で最初の WebView で、リクエスト パラメータに「http」または「www」が含まれているかどうかを確認します。これは、2 番目の WebView を呼び出したいからです。2 番目の WebView は最初はうまく機能し、ビューはモーダルで正常に表示されますが、それを閉じて同じリンクまたは別のリンクをタップすると、shouldStartLoadWithRequestデリゲート メソッドは呼び出されませんが、リンクは同じ WebView (最初のもの) に読み込まれます。 .
私はこれをグーグルで検索しましたが、私のようなケースや解決策は見つかりませんでした。私はiOSアプリ開発の経験があまりありませんが、同僚はかなり優秀で、この問題の解決策を見つけることができませんでした. コードを分解して分析しましたが、この問題の潜在的な原因は見つかりませんでした。彼は別のプロジェクトを持っていて、同じ問題を抱えています。彼は 1 つのコントローラーと 1 つの WebView (私たちのコントローラーと nib は、独自に作成)。私たちは調査とコード検査をかなり徹底的に行いました
ios - javascriptで列幅とギャップを設定した後、UIWebViewがテキストをリフローしないのはなぜですか?
HTML ファイルを UIWebView にロードし、webViewDidFinishLoad で JavaScript を使用して「-webkit-column-width」および「-webkit-column-gap」スタイル プロパティを設定していますが、テキストが列にリフローしません。
}
スタイル属性が正しく設定されていることをアラートで確認したので、効果がない理由がわかりません。Safari のコンソールから同じ JavaScript 文字列を実行すると、望ましい効果が得られます。これがUIWebViewで機能しない理由は何ですか?
ios - iOSのWebビュー内にWebivewをロードする
ロード中に問題UIWebViewが発生しました。URLがロードされるWebビュー(1番目)があります。そのページがロードされると、ロード中の最初のWebビューの上にWebビュー(2番目)がある小さなビューを作成しています。 2番目のURL。基本的に、Webビュー内にWebビューをロードしています。2番目のWebビューでURLをクリックすると、結果のURLがアプリ外のサファリで開く必要があります。設定していない[webview setDelegate:self]場合、ページは意図したとおりに小さなWebビューに読み込まれますが、クリックしても何も起こりません。
ただし、2番目の委任をUIWebView自分自身として設定すると、2番目にロードする必要のあるURLがUIWebView最初のURLにロードされます。
誰かが以前にこの種のWebビューの読み込みを行ったことがありますか。助けてください。あなたの助けは深く感謝しています
ありがとう
ios - uiwebviewのアクションに対するJavaScriptアラートを許可する方法
UIWebViewにWebページをロードしています。Webページが正常に読み込まれ、Webページのボタンが正常に機能しています。しかし、Webページのテキストボックスに間違ったテキストを入力するとポップアップするアラートをWebページに表示できません。
アラートの表示を許可する方法。
私を助けてください。ありがとうございました
これは私のコードです:
ios - UIWebView loadRequestの再利用により、ちらつき効果が得られます
複数のPDFファイルがあります。ユーザー入力に基づいて、UIWebViewを使用してPDFをロードしています。最初のloadRequestで、PDFを適切にロードします。LoadRequestの2回目の呼び出し以降、新しいpdfの読み込み中にちらつき効果が表示されます。コンテンツのぼやけた表示を開始し、数秒でコンテンツをゆっくりと適切に表示することを意味します。
以下のコードスニペット:
objective-c - iPadのUIWebViewに関する問題
有効なURLを読み込もうとすると、次のメッセージが表示され、Webページが表示されません。
delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:)10秒待っても戻れませんでした。メイン実行ループモード:kCFRunLoopDefaultMode
誰かが親切に私を助けてくれますか?
使用:iOS4.x上のiPad2
コメント:iOS5.xでは問題ないようです
使用したコード:
javascript - JavascriptタッチイベントをObjective-C UIWebViewネイティブコードに渡すにはどうすればよいですか?
UIWebView には、リンクが読み込まれる前に呼び出すメソッド、つまり webView:shouldStartLoadWithRequest:navigationType: が含まれていることを認識しています。
これを使用して、UIWebView デリゲートのネイティブ コードは、ロード リクエストをインターセプトし、それらに対して何をすべきかを決定できます。これにより、UIWebView とその中で実行されている JavaScript との間の通信方法が提供されます。
ただし、タッチ イベントや現在のタッチ位置などの情報を渡そうとする場合、これは不十分なソリューションのように思えます。タッチ イベントごとにリンクの読み込みを偽装して、そのように情報を渡す必要がありますか? これは遅くてハックっぽいです。これを行うためのより良い方法は何ですか?
javascript - JavaScript からの Objective-C メソッドが呼び出されない
私はUIWebViewJS関数を含むボタンを持っていますが、意図したように、デリゲートメソッドはロードページでのみ呼び出され、押されたボタンでは呼び出されません。
何が問題ですか?
PS
シミュレーターでテストしています。
.h:
.m: