سؤال

We've been working on a Chrome Packaged App that we distribute manually to some internal machines (not using the chrome store) to display some content on some kiosks around the enterprise.

We've recently had a new feature request that requires the use of the Zigfu plugin (NPAPI, Kinect) to track user engagement in those kiosks. However when we add the plugin to the manifest:

"plugins":[{"path":"npZigJSv1.0.1.dll",public:"true"}]

We get the following error:

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

So my questions are:

  • Is there a way around this limitation since we control the machines in question?
  • What is the definition of 'legacy packaged app' does it preclude the use of the chrome.* space? (we are using localstorage)
هل كانت مفيدة؟

المحلول

Replying to @mmocny's answer:

NPAPI is also being phased out for extensions.

And considering that NPAPI-using extenions will be rejected in the Webstore AND deployment options for Windows outside Webstore were severely shrunk, it's a bad idea. You may be able to make it work, but it will be temporary and painful.

The correct way to do it now is using Native Hosts. Basically, you have a specifically crafted native executable wrapping Zigfu functionality you need that talks to your app via Native Messaging.

Deployment downside is that you have to install the native component separately, but in your case that's a plus (restricts access) and not a problem (you control the machines).

نصائح أخرى

First, some background: Extensions and Apps in the Chrome Web Store. That doc explains the difference between Extensions vs Apps, and Hosted vs Packaged.

The best explainer doc I've found for Legacy Packaged Apps is here: Tutorial: Migrate to Manifest V2.

Basically, chrome apps now have a v2. They can be identified via "manifest_version": 2 in the manifest.json. v2 apps come with many API, UI, and security changes compared for our first attempt.

Among those changes, the "plugins" key for NPAPI support has been phased out. There is no way to enable it for v2 apps even if you control the machine in question. Additionally, Chrome won't even load legacy apps any more, so you cannot use that as a fallback.

However, NPAPI seems to still be supported for Chrome Extensions. Combined with inter-app communication between an app and extension, perhaps you can build exactly what you are asking for!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top