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

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

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

4回答

869閲覧

yahooブラウザで検索をしたい。

yonn

総合スコア120

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2020/04/02 13:19

前提・実現したいこと

C#のプログラムからブラウザを立ち上げ検索窓からyahoo検索を行う。
Googleでもかまわないです。

下記コードは簡単にイメージを勝手に書いただけなのですが そんな事が可能なのかもわからずにおります。
もしそんな可能であれば何を勉強すべきかなど教えて頂くだけでとても嬉しいです。

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

エラーメッセージ

該当のソースコード

C# Unity

if (Input.GetKeyDown(KeyCode.KeypadEnter))//テンキーのエンター { //標準のブラウザで開いて表示する string w = "egg";//「egg」と言うワードを代入 System.Diagnostics.Process.Start("https://yahoo/検索窓/" + w);//eggを検索する }

試したこと

上記のコードはイメージとなります。
宜しくお願い致します。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

Zuishin

2020/04/03 02:38

ブラウザを立ち上げれば済むことなのか、検索結果をアプリで使用するのかで方法が変わります。検索結果を使用したいのであれば規約上 API を使わざるを得ません。
yonn

2020/04/03 02:41

今回はブラウザを立ち上げて「egg」と言うワードでどんなサイトが表示されるか検索して眺めるだけでございます。
yonn

2020/04/03 03:56

ありがとうございます。 エンコーディングが少し難しく考えていましたが 普通に日本語を入れてもうまく作動するようでした。 しかしWebGLでアプリを立ち上げてみると反応せずProcess自体が規格から外されているようでした。 とても残念です。
Zuishin

2020/04/03 04:05 編集

ついでに補足します。 うまく動作するのはたまたまです。Windows の場合は UTF-8 ではなく CP932 を使う可能性がありますが、これを使うと URL に使ってはいけない文字が入り込むことがあったり、サーバーが期待する URL とは違ったりすることがあるので、希望するページにたどり着けないことがあります。アルファベットと数字以外(記号含む)を使う際には必ずエンコードしてください。次の定型句でできます。 HttpUtility.UrlEncode("検索したい文字列", new UTF8Encoding(false))
yonn

2020/04/03 04:24

なるほど。 とても参考になります。 こういう知識が実践で役に立つのでしょう。 ご親切にありがとうございました。
guest

回答4

0

selenium C# で検索すると解決しそうです。

投稿2020/04/02 13:30

scsi

総合スコア2840

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

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

yonn

2020/04/03 02:46

ありがとうございます。 存在もしらなかったので大変助かりました。 「selenium C#」だいぶ調べさせて頂きました。 Unityが絡むと難度が高めです。 バッチリこのアプリで使えそうなのですがコマンドプロントが立ち上がったまま作動せず難航しております。 もう少し調べてみます。 ありがとうございます。
guest

0

ベストアンサー

こちらでは試していないですが、以下はどうでしょうか。

C#

1Application.ExternalEval("window.open(\"http://www.unity3d.com\")");

引用元

投稿2020/04/03 04:35

fiveHundred

総合スコア9908

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

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

yonn

2020/04/03 04:44

ありがとうございます。 「Application.ExternalEval(string)は旧型式です。」と表示されて普通にエディターでも何も反応しませんでした。 少しヒントを得ましたので他の方法を試してみようと思います。 https://isemito.hatenablog.com/entry/2018/08/08/203017
yonn

2020/04/03 06:51

トライしてみましたがJavaがよくわからず諦めてしまいました。 でもとても為になりました。ありがとうございます。
fiveHundred

2020/04/03 06:55

念のため言っておきますが、JavaScriptとJavaは別物です。 今回の場合、前者です。 そもそも、記事の内容通りに従えば出来そうな気もしますが、どこが分からない(あるいは上手くいかない)のでしょうか?
yonn

2020/04/03 07:53

申し訳ありません。 Javaは別で存在するのですね。 解凍したMyPlugin.csのC#のファイルをオブジェクトにつけようとすると スクリプトクラスが見つからない為、スクリプトコンポーネント「MyPlugin」を加える事が出来ません。コンパイルエラーがなく、ファイル名とクラス名が一致していることを確認してください。 と表示されます。 ・クラス名をHogeClass ⇒ MyPlugin に変更しました。 しかし最後の「 OpenToBlankWindow(string m_url);」にエラーが表示されます。 エラー表記は 「メソッドは返り値を持たなければなりません。MyPlugin.MyPlugin(string)はabstruct,extern,またはpartialに指定されていないため、本体を宣言する必要があります。」 と表記されています。
fiveHundred

2020/04/03 10:09

OpenToBlankWindow(m_url);はclass直下に書くのではなく、ほかの関数の中で表示させたいタイミングで呼び出してください。
yonn

2020/04/03 11:38

ありがとうございます。 m_urlはアドレスへ置き換えてみました。 動いたのですがすぐにエラーになってしまいました。 [DllImport("__Internal")] private static extern void OpenToBlankWindow(string _url); void Start() { OpenToBlankWindow("http://www.unity3d.com");   } ーーーーーーーーーーーーーーーーーーーーー エラー EntryPointNotFoundException:OpenToBlankWindow MyPluginStart()(at Assets/MyPlugin )
fiveHundred

2020/04/03 11:46

jslibは用意しましたか?
yonn

2020/04/03 12:06

はい。 プロジェクトに「Plugins」と言うフォルダを作成し「MyPlugin.jslib」を作成し入れているのですが何か基本的な間違いをしているのかもしれません。中身はそのまま貼り付けております。 mergeInto(LibraryManager.library, { OpenToBlankWindow: function (_url) { window.open(Pointer_stringify(_url),'_blank') }, });
fiveHundred

2020/04/03 13:16

これ以上は私は分からないですね。すいません。
yonn

2020/04/03 15:47

いえ、fiveHundredさんからのヒントはとても大きかったです。 私のコピペの内容を見て下さるだけでどれだけありがたい事か。 皆さんのたくさんのご意見を頂けるのはとてもありがたい事です。 また何かありましたら宜しくお願い致します。
guest

0

  1. google search apiのapiキーを取得する
  2. 1.で取得したキーを使ってC#からhttp requestを送る

1.のやり方はここ
https://qiita.com/zak_y/items/42ca0f1ea14f7046108c
2.のやり方はここを見ればわかると思います
https://qiita.com/rawr/items/f78a3830d894042f891b

投稿2020/04/02 13:36

ShintaroNomiya

総合スコア94

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

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

yonn

2020/04/03 02:33

良記事で参考にさせて頂きましたがいろいろ試したのですがUnityではうまく反映させるところまで漕ぎ着ける事ができませんでした。 不特定の方に触って頂く機能なので制限数もあるようなので少し敷居が高いかもしれませんがとても参考になりました。 ありがとうございます。
guest

0

Unity 上で WebView が使えるプラグインがありますので、そちらを使うと良いと思います。

参考:【Webview】unity-webview / UniWebView3 - Qiita
https://qiita.com/mczkzk/items/0ed0665c7da3b550770e

投稿2020/04/02 13:33

nskydiving

総合スコア6500

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

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

yonn

2020/04/03 02:43

ありがとうございます。 説明不足で申し訳ありません。 今回はUnity外のブラウザを立ち上げて検索するというイメージでした。 思いもしないアセットがあり勉強になりました。 何かで使えそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問