Xcode 9.0とiOS 11を使用しています。ユーザーがリンクをタップするとJavaScriptコードを実行しようとしています。 jsコードはWKWebView内のローカルHTML Webサイトに埋め込まれています。 webView.evaluateJavaScript("document.getElementsByClassName('panel-title').innerText")
のような多くの提案を試してみましたか、webviewに異なる設定をしました。 HTMLのサイトは、ユーザーが拡張し、それはこのようになります異なるセクションWKWebViewのローカルWebサイトでjavascriptアクションを呼び出す
を折りたたむことができます個人情報保護方針が含まれています
<main class="container">
<div>
<h1 id="datenschutzwbrerklrung">Datenschutz<wbr>erklärung</h1>
<p>Allgemein</p></div>
<div class="panel panel-default"><div class="panel-heading" role="tab" id="headingsection1" data-toggle="collapse" data-parent="#accordion" href="#section1">
<h4 class="panel-title">Allgemeiner Hinweis</h4></div><div id="section1" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingsection1"><div class="panel-body">
<p>Es ist uns ein ganz besonderes Anliegen, dass sich alle Nutzer unserer App wohl und sicher fühlen. Aus diesem Grund ist uns der Schutz Ihrer personenbezogenen Daten von höchster Wichtigkeit.
Bei der Erhebung, Verarbeitung und Nutzung halten wir uns selbstverständlich streng an die gesetzlichen Bestimmungen des Bundesdatenschutzgesetzes (BDSG) und des Telemediengesetzes (TMG).
Wir verarbeiten personenbezogene Daten zur Auftragsabwicklung. Bei berechtigtem Interesse rufen wir zum Zweck der eigenen Kreditprüfung ggf. Bonitätsinformationen von Auskunfteien ab.</p></div></div></div>
<br />
ので、ユーザが「Allgemeinerメモ」をクリックしたとき。以下のテキストが展開されます。これはMacのSafariで機能しています(JavaScriptを有効にする必要があります)。しかし、私のWKWebViewでは動作しません。 私の現在のWKWebViewの構成は次のようになります。
var webView: WKWebView!
override func loadView() {
super.loadView()
let contentController = WKUserContentController()
let config = WKWebViewConfiguration()
config.preferences.javaScriptEnabled = true
config.preferences.javaScriptCanOpenWindowsAutomatically = true
config.selectionGranularity = .character
config.userContentController = contentController
webView = WKWebView()
webView.navigationDelegate = self
self.webView.customUserAgent = "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136"
view = webView
}
私はまた、次のデリゲートメソッドを使用します。最初のif条件は常にfalseです。 2番目のif文ではエラーとなり、結果はnilです。
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("delegate")
webView.evaluateJavaScript("document.getElementsByClassName('panel-title').innerText") { (result, error) in
if error != nil {
print(result ?? "nix")
}
else {
print("Error: \(String(describing: error))")
}
}
webView.evaluateJavaScript("document.getElementsByClassName('panel-title')") { (result, error) in
if error != nil {
print("The result is: \(result ?? "nil")")
print("resut error: \(error!)")
}
else {
print("The Error: \(String(describing: error))")
}
}
まだ何かが欠落していると確信しています。 何か助けていただければ幸いです。
3000行以上のコードがあるので、JavaScriptの部分全体を投稿することはできません。いくつかのクエリが含まれているようです。たぶん誰かが私にこの仕事をする方法の一般的なヒントを与えることができます – user1895268