質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

webKitでサイトがうまく表示されない

faipaspijfasjf
faipaspijfasjf

総合スコア260

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

2回答

0グッド

0クリップ

186閲覧

投稿2022/11/02 05:31

編集2022/11/06 14:27

前提

TwitterをwebKitで表示する際に一部のページがうまく動作しないです。
具体的には https://twitter.com/search?q=任意の文字列 を表示する際に起きます。

実現したいこと

https://twitter.com/search?q=任意の文字列 を渡すと正常に表示されるようにしたいです。

発生している問題・エラーメッセージ

イメージ説明

確認していること

・文字列はちゃんと渡しています。(printで確認済み)
・対象のURLはちゃんと検索結果が存在します。
(例:https://twitter.com/search?q=%E3%83%8F%E3%83%AD%E3%82%A6%E3%82%A3%E3%83%B3)

該当のソースコード

Swift

1 2 override func viewDidLoad() { 3 super.viewDidLoad() 4 // webKit 5 let homeUrl = "https://twitter.com/search?q="+self.searchkeyword() 6 // URLに含まれる日本語をエンコードする 7 let encodeUrlString: String = homeUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! 8 let url = URL(string: encodeUrlString) 9 // リクエストする 10 var request = URLRequest(url: url!) 11 // POSTしてみる 12 request.httpMethod = "POST" 13 // webページを開く 14 webPage.load(request) 15} 16 17private func searchkeyword() -> String { 18 if let searchKeyword = UserDefaults.standard.string(forKey: "searchKeyword") { 19 return searchKeyword 20 } 21 return NSLocalizedString("テスト", comment: "") 22 }

試したこと

webKitで開いた状態で クリック するとちゃんと表示される事は確認できました。
Twitterで何かしらの検索をする場合は on clickイベント を追加してリクエスト必要があるのでしょうか?

webのこと全くわからないのでお手柔らかにお願いします。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

0

自己解決

解決しました。
クエリの仕様が変わっていました。

最新の方法に変更したら無事表示されました。
またなぜか TwitterJP アカウントの高度な検索のみ使えませんでした、、
(回答していただいたお陰でコードを見直せました!ありがとうございます。)

投稿2022/11/18 07:06

faipaspijfasjf

総合スコア260

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

ヒットしない文字列をqに指定すると次のようなメッセージが表示されるようでした。
「〜」の検索結果はありません

質問欄は英語の表示なのでちょっと違うかもしれませんが、
「No results for」の後に文字列があるように見えますが、
表示されない文字列が渡されているように見えます。
*スペースでしょうか?

searchkeyword()の部分を見直してみると良いかもしれませんね。

画面の仕様が把握できていませんが、
searchは検索文字列を入力してからボタンをタップするなどのアクションがあって検索するものだと思いますので、
viewDidLoadのタイミングですることではないのかなと思ったりしました。

投稿2022/11/06 02:20

退会済みユーザー

退会済みユーザー

総合スコア0

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

faipaspijfasjf

2022/11/06 14:38 編集

⚫︎ *スペースでしょうか? →いえ。文字列になります。 https://twitter.com/search?q=ハロウィンの検索結果になります。 (本来は結果画面に文字列が出ますが微妙な内容だったので画像を切り取りました。) ⚫︎searchkeyword()の部分を見直してみると良いかもしれませんね。 →︎searchkeyword()追記しました。 ⚫︎ viewDidLoadのタイミングですることではないのかなと思ったりしました。 →前の画面で検索キーワードを入力し、画面遷移で値を受け渡して現在のViewControllerで表示しています。 気になるのは検索結果が存在するにも関わらず表示されたり、されなかったりする点です。 現在Twitter公式でも高度な検索が死んでる状態です ⚫︎高度な検索 https://twitter.com/search-advanced 上記のロジックで高度な検索を叩くと検索結果が死んでいます URL:https://twitter.com/search?q=ジブリ (from%3ATwittterJP) TwitterJPのツイート内容を見ると「ジブリ」とツイートしています。 https://twitter.com/TwitterJP/status/1587301348604841987 もしかするとここ最近の混乱で検索結果に問題が起こっているのかもしれません。 もう少し様子見をしてみます

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています