5

この問題は、バージョン23のGoogleChromeで発生しました。Chromeアプリは、起動されたイベントが発生したときにUIを表示するためのタブを開きます。

chrome.app.runtime.onLaunched.addListener(function() 
{
   chrome.tabs.create(
   {
      url: "../../index.html"
   });
});

このスキームは、GoogleChromeのバージョン23より前に機能していました。アプリの実行時に次の例外が発生するようになりました。

Error in event handler for 'app.runtime.onLaunched': Cannot call method 'create' of undefined TypeError: Cannot call method 'create' of undefined

開発ツールでオブジェクトをチェックした後、それが未定義chromeであることに気付きました。chrome.tabs

http://developer.chrome.com/extensions/tabs.htmlによると、create、update、およびremoveメソッドは「タブ」を必要としないため、manifest.jsonで「タブ」権限を明示的に設定する必要がないことを知っています。 " 許可。

「タブ」権限をmanifest.jsonファイルに明示的に追加しようとした後、アプリのchrome:// chrome /extendeds/でこのメッセージを受け取ります。

There were warnings when trying to install this extension: 'tabs' is only allowed for extensions and legacy packaged apps, and this is a packaged app.

https://developers.google.com/chrome/web-store/docs/choosingで提供されているチャートを使用していて、アプリのUIが小さくなく、ChromeのUIを拡張するつもりがないため、パッケージ化されたアプリを選択した場合それでは、ポップアップウィンドウを作成せずに、新しいタブまたは既存のタブ内でアプリのUIを開くにchrome.tabsはどうすればよいですか(非常に煩わしく、ユーザーフレンドリーではありません)。

4

1 に答える 1

8

chrome.app.runtime.onLaunched で window.open() を試しましたか

于 2012-11-16T13:26:24.197 に答える