4

Opera拡張機能を開発しました。正常に動作しています。ただし、拡張機能をWindowsレジストリまたはWindowsファイルシステムにインストールする必要があります。どうすればこれを行うことができますか?

4

1 に答える 1

6

注:この質問はOpera12に関連していますOpera12
は、次のOperaバージョンとは別の拡張アーキテクチャを使用しています。

Opera拡張機能はレジストリ経由でインストールされません。

widget.dat次のフォルダに呼び出されたXMLファイルがあります。

C:\Users\%Username%\AppData\Local\Opera\Opera\widgets

各ウィジェットにはエントリがあります。構文は自分で理解できると思います。ウィジェットがいくつかインストールされている場合は、非常に自明です。


widget.dat編集:に新しいエントリを追加すると、拡張機能がOperaにインストール されることがわかりましたが、初期化されていないため、非アクティブ化されます。これは通常、実行時にjavascript/extensionエンジンを介して発生します。

スクリプトを手動で有効にするには、widget.datに記載されprefs.datているフォルダーwuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxに、少なくとも次の構造が含まれている必要があります。

<?xml version="1.0" encoding="utf-8"?>
<preferences>
  <section id="ui">
    <value id="default-prefs-applied" xml:space="preserve">1</value>
  </section>
</preferences>

pstorageそれに加えて、フォルダ内のウィジェット設定を手動で初期化する必要がある場合があります。設定は、base64でエンコードされたutf-16キーと値のペアの文字列として保存されます。したがって、このエンコードされた構造:

<ws>
  <e>
    <k>YQBsAGUAcgB0AF8AYgB1AGIAYgBsAGUAXwB0AGkAbQBlAG8AdQB0AA==</k>
    <v>IgAxADUAIgA=</v>
  </e>
<ws>

次のように読みます:

<widgetsettings>
  <entry>
    <key>alert_bubble_timeout</key>
    <value>"15"</value>
  </entry>
<widgetsettings>

(タグ名は自由に解釈されます;)ここでutf-16を処理できるbase64 en/decoderを見つけました


PS:Operaはウィジェットをダブルクリックしてインストールします。したがって、コマンドラインで拡張パスを使用してOperaを実行することもできます。その場合、Operaがすべてを行います。

C:\Program Files\Opera\opera.exe C:\Path\To\Extension.oex
于 2012-09-10T09:18:37.470 に答える