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

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

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

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

Q&A

解決済

2回答

546閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿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のこと全くわからないのでお手柔らかにお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

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

投稿2022/11/18 07:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

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

投稿2022/11/06 02:20

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

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 もしかするとここ最近の混乱で検索結果に問題が起こっているのかもしれません。 もう少し様子見をしてみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問