問題タブ [wkwebview]

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.

0 投票する
1 に答える
939 参照

ios - Xamarin Unified IOS WKWebView のクラッシュ

新しい Xamarin Unified iOS API で WKWebView を使用すると問題が発生します。ロード時に EXC_BAD_ACCESS (SIGABRT) - KERN_INVALID_ADDRESS 例外でクラッシュします (そのために電話ログを掘り下げる必要があります。Visual Studio には何も表示されません。

誰かがこれを経験したことを願っていました。以下は問題のあるコードのように見えますが、従来の API では問題なく動作していました (API の違いによる小さな変更はありますが)。3 つの WKWebView 行と、それをコントローラーに追加する行をコメント アウトすると、アプリが実行されます。注: Window、Controller、および WKWebView はすべて、appdelegate クラスのパラメーターです。

クラッシュ レポートの関連セクション (クラッシュ スレッド スタック トレース) は次のとおりです。

0 投票する
1 に答える
6940 参照

swift - ios8 ジェスチャ レコグナイザーが、swift を使用する WKWebView で機能しない

次のように、WKWebViewに長押しジェスチャ認識機能を実装しようとしています:

エラーは発生しませんが、onLongPress機能をトリガーするようには見えません。

0 投票する
2 に答える
2292 参照

swift - WKWebview が Swift でローカル イメージをロードしない

WKWebview を使用してローカルの htm ファイルを表示しています。すべて問題ありませんでしたが、ローカルの画像を htm ファイルに追加すると、画像が表示されませんでした。多くのstackoverflowユーザーが同様の問題を抱えていましたが、明確な答えはありません. これが私のコードです。

あなたが私を助けてくれることを願っています。私はあなたの答えを待っています。ありがとうございました。

0 投票する
4 に答える
2471 参照

ios - WKWebView を [NSUserDefaults standardUserDefaults] に保存できないのはなぜですか?

上記のコードは WKWebView オブジェクトを保存するように作成されていますが、コンパイル エラーが発生します。

2014-11-08 14:58:52.561 復元[2431:482391] プロパティ リストが無効な形式: 200 (プロパティ リストにタイプ 'CFType' のオブジェクトを含めることはできません) 2014-11-08 14:58:52.564 復元[2431:482391 ] プロパティ リスト以外のオブジェクトを設定しようとする > キー webView の NSUserDefaults/CFPreferences 値として 2014-11-08 14:58:52.566 Restoration[2431:482391] * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: 'プロパティ リスト以外のオブジェクトを挿入しようとしています > キー webView' *First throw call stack: (0x2c491c1f 0x39c78c8b 0x2c491b65 0x2c4cbe51 0x2c436599 0x2c4358d7 0x2c4cc0d1 0x2c4cb769 0x2c4ce95b 0x2c4ce875 0x2d0eab69 0x66bdf 0x2f981c2b 0x2f981bd1 0x2f96c863 0x2f98163d 0x2f981317 0x2f97abe1 0x2f9513dd 0x2fbc4c29 0x2f94fe39 0x2c458377 0x2c457787 0x2c455ded 0x2c3a4211 0x2c3a4023 0x3379d0a9 0x2f9b01d1 0x66ead 0x3a1f8aaf) libc++abi.dylib: terminating with uncaught exception of type NS例外

WKWebView を保存して履歴をそのまま復元するにはどうすればよいですか?

編集:

8か月が経過しましたが、この問題の解決策はありません...

編集2:

私は Web ブラウザーを作成しています。ユーザーがアプリを再起動して Web ビュー (タブ) を復元し、戻るボタンを押して戻ることができるようにすることが重要です。

以前の URL を単純なリストに保存すると、アプリの再起動時にそれらを Web ビューに戻すことができません。最初のページしか読み込めません。したがって、戻るページがないため、ユーザーは戻ることができません。URLのリストを保存するのと同じくらい簡単だったら、報奨金を開始しません. Web ブラウザーは非常に複雑なアプリであるため、私は webView の基礎に非常に近づいており、3 つのバグを提出しましたが、そのうち 2 つだけが解決されました。悪名高いスクリーンショットのバグを含みます。

standardUserDefaults メソッドは UIWebView で機能しますが、Apple は、iOS 7 のリリース後にすべての開発者が WKWebView を使用する必要があると述べています。UIWebView は近い将来廃止されると予想しています。

0 投票する
5 に答える
21282 参照

swift - WKWebView への JavaScript 同期ネイティブ通信

WKWebView を使用して、JavaScript と Swift/Obj-C ネイティブ コード間の同期通信は可能ですか?

これらは私が試して失敗したアプローチです。

アプローチ 1: スクリプト ハンドラーを使用する

WKWebViewの JS メッセージ受信の新しい方法は、によってuserContentController:didReceiveScriptMessage:JS から呼び出されるデリゲート メソッドを使用するwindow.webkit.messageHandlers.myMsgHandler.postMessage('What's the meaning of life, native code?') ことです。このアプローチの問題は、ネイティブのデリゲート メソッドの実行中に、JS の実行がブロックされないため、値を返すことができないことです。すぐに呼び出せwebView.evaluateJavaScript("something = 42", completionHandler: nil)ます。

例 (JavaScript)

例(スウィフト)

アプローチ 2: カスタム URL スキームを使用する

JS では、URL クエリ パラメータを抽出できるネイティブ メソッドを使用してリダイレクトするとwindow.location = "js://webView?hello=world"、ネイティブ メソッドが呼び出さ れます。WKNavigationDelegateただし、UIWebView とは異なり、デリゲート メソッドは JS の実行をブロックしないためevaluateJavaScript、値を JS に戻すためにすぐに呼び出しても、ここでは機能しません。

例 (JavaScript)

例(スウィフト)

アプローチ 3: カスタム URL スキームと IFRAME を使用する

window.locationこのアプローチは、割り当て方法のみが異なります。直接割り当てる代わりにsrc、空の属性iframeが使用されます。

例 (JavaScript)

それにもかかわらず、これも解決策ではありません。アプローチ 2 と同じネイティブ メソッドを呼び出しますが、これは同期的ではありません。

付録: 古い UIWebView でこれを実現する方法

例 (JavaScript)

例(スウィフト)