UIWebView
を使用して記事であるWebページを読み込んでいます。一度ボタンを押すと、url
、title
、およびimage
の構造体が作成されます。タイトルにアクセスするには、ウェブページのソースコードにアクセスして、記事ごとに同じクラスID(class = "c-page-title")を持つh1 header
のタイトルを取得する必要があります。誰でもh1 header
からテキストを取得するには、stringByEvaluatingJavaScript
またはevaluateJavaScript
関数を使用する方法を知っていますか?IDW-SWIFTで要素を取得するためにUIWebViewでJavaScriptを使用
のStruct::記事の構造体を埋め
struct Article {
var url: URL
var img: URL
var title: String
init(url: URL, img: URL, title: String) {
self.url = url
self.img = img
self.title = title
}
}
機能:ここで
は、参考のために私のコードの一部である
@IBAction func bookmarkArt(_ sender: Any) {
let articleInst = Article(url: (mainWebView.request?.url)!, img: (mainWebView.request?.url)!, title: "Article Here")
bookmarks.append(articleInst)
print("array: \(bookmarks)")
let alertController = UIAlertController(title: "Bookmark added!", message: "This article was just added to your bookmarks.", preferredStyle: UIAlertControllerStyle.alert)
// Replace UIAlertActionStyle.Default by UIAlertActionStyle.default
let okAction = UIAlertAction(title: "Awesome, thanks!", style: UIAlertActionStyle.default) {
(result : UIAlertAction) -> Void in
print("OK")
}
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
}
非常に高く評価されるだろうすべてのヘルプ!事前にありがとうございます。
乾杯、 テオ確か
ありがとうございます!私はこれを実装し、どのように動作するかを見ていきます。残念ながら、私がテキストをつかむウェブサイトは私のものではないので、私はそれらのタグを編集することはできません。 –
また、私はちょうどarticleInst.title = webView.stringByEvaluatingJavaScript( "document.getElementsByClassName(\" c-page-title \ ")[0] .innerHtml;")を実行するか、関数を最初に定義する必要がありますか? –
'stringByEvaluatingJavaScript()'はUIWebView objの一部ですので、ちょうどfyiを使用することができます。実際にそのコードを擬似コードのようにテストしていないので、他の質問があれば教えてください:) –