Linux で使える XML-RPC API を用いて投稿してくれる WYSIWYG エディタのあるブログクライアントを探したところ blogilo があることが分かったのですが、 ubuntu では既にパッケージから削除されており、かつ、現在もパッケージの存在するディストリビューション( Fedora など)でも、 WYSIWYG エディタが機能せず、エラーも多数発生することが分かり、 既存のクライアントの使用を断念せざるを得ませんでした。
そのため、自作しようと試みています。 .Net と C# を用いてフォームベースの GUI アプリケーションとして作成しようと考えています。
手始めに、 webbrowser コントロールをフォームに貼り付けて、 URL 開いて表示することのできるサンプルアプリを作ろうとしました。
JetBeans Rider を使って開発しようと思ったのですが、 Linux では .Net, .Net Core 共に GUI アプリケーションが作れないことが分かりましたので、 Mono を使った GUI アプリケーションを作成しようとしました。しかし、 Rider は Mono での GUI アプリケーション作成の機能が存在しないことが分かり断念しました。
そこで、代わりになる開発環境を探しましたが、 .Net の System.Windows.Forms を使ってフォームベースのGUIアプリをデザインモードで開き開発できる開発環境が一つも存在しないことが分かり、デザインモードの使用も断念せざるを得ませんでした。
デザインモードの使用を諦めれば、 MonoDevelop という開発環境であれば System.Windows.Forms を用いたフォームベースのGUIアプリケーションの開発が可能と分かりました。そこで、 Form1 を作成し、
C#
1 2form1.cs 3namespace wbctrltest1 4{ 5 public partial class Form1 : Form 6 { 7 public Form1() 8 { 9 InitializeComponent(); 10 } 11 private void Form1_Load(object sender, EventArgs e) 12 { 13 string url = "http://sample.url/"; 14 webBrowser1.Navigate(url); 15 } 16 } 17} 18 19form1.designer.cs 20namespace wbctrltest1 21{ 22 partial class Form1 23 { 24... 25 #region Windows フォーム デザイナーで生成されたコード 26 private InitializeCompopnent() 27 { 28 this.webBrowser1 = new System.Windows.Forms.WebBrowser(); 29 ... 30 this.Controls.Add(this.webBrowser1); 31 this.Load += new System.EventHandler(this.Form1_Load); 32 this.ResumeLayout(false); 33 } 34 #endregion 35 private System.Windows.Forms.WebBrowser webBrowser1; 36 } 37} 38 39program.cs 40namespace wbctrltest1 41 static class Program 42 { 43 [STAThread] 44 static void Main() 45 { 46 Application.EnableVisualStyles(); 47 Application.SetCompatibleTextRenderingDefault(false); 48 Application.Run(new Form1()); 49 } 50 } 51}
のように記述しました。ところが、デバッグ実行をすると、一瞬でアプリケーションが終了してしまいました。
MonoDevelop の「アプリケーション出力」を見ると、
libgluezilla not found. To have webbrowser support, you need libgluezilla installed
となっていました。これが原因で即時終了してしまうのは分かるのですが、
$ sudo apt-cache search libgluezilla
libmono-webbrowser4.0-cil - Mono Web Browser library (for CLI 4.0)
と表示される libmono-webbrowser4.0-cil は下のようにインストール済みです。
$ sudo apt-get install libmono-webbrowser4.0-cil
libmono-webbrowser4.0-cil is already latest version (6.0.0.313-0xamarin3+ubuntu1804b1)
upgraded: 0 , installed: 0, removed: 0, pending: 39.
ということは、もしかして、 Linux では、 Mono の Sysytem.Windows.Forms.WebBrowser は、未実装、つまり、「はじめから使えません」なのでしょうか?(ちなみに、上記コードの Navigate() 行をコメントアウトすると問題なくフォーム「だけ」表示されました。)
もし、 Mono が Linux platform では WebBrowser コントロールを実装していないのであれば、何か代わりになるブラウザコントロールが必要です( url を指定して表示するだけでなく、 WYSIWYG 編集も可能なもの。)が、現在開発継続中でおすすめな .Net で開発できる WebBrowser コントロールがあるでしょうか。 Mono.WebBrowser が代わりに使えますか?
IE の WebBrowser コントロールは Linux 版は無さそうですが、 firefox の Gecko エンジンや Chrome のエンジンなどが、 Linux 上で .Net 上で開発できる WebBrowser コントロールとしても用意されていればそれらでよさそうですが・・・。
追記:
一応、もし Linux の Mono の WebBrowser コントロールが使えない(未実装)だったときのためにネットで検索してみました。
awesomium というものがあるようでした(これは Chrome のエンジンを使っているようです)が、 .Net 用と書いてあるのですが、なぜか .Net 用のバイナリが見つからず、なぜか、C++用のライブラリがリンク先にあり、なぜか、ページに書いてあるとおりにサンプルを cmake でビルドしてみても、同じディレクトリに libUltralightCore.so がビルドされて存在しているにも関わらず、
./Browser: error while loading shared libraries: libUltralightCore.so: cannot open shared object file: No such file or directory
のように、すべてのサンプルが同じ .so ファイルが無いというエラーで起動しませんでした。(起動したとしても、 .Net と C# で開発する予定ですので、このC++ライブラリを使用するつもりはないのですが・・・。)
OpenWebKit というものもあるようですが、かなり古いようで、10年ほど前に開発を終了してしまっているようです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。