Copy link to clipboard
Copied
Dear forum, I build an extension with 2 panels: one for AEFT and one for ILST. It works perfect: both applications communicate and the task is done. Except that after installation, both panels appear in the Extensions menu of AEFT and ILST.
So in After Effects i see in the Extensions menu:
- Example Panel 1
- Example Panel 2
They both open and work as Example Panel 1 (the one meant for AEFT)
Same in Illustrator:
- Example Panel 1
- Example Panel 2
They both open and work as Example Panel 2 (the one meant for ILST)
My deepest desire is to just see:
After Effects
- Example Panel 1
Illustrator:
- Example Panel 2
I assumed a mistake in the manifest, but it's almost a perfect copy of the example here
but I might not see well after all this time.
Also, I found this post,
but I am not sure if the solution is somewhere else then the manifest, because except for the double appearance it technically works like a charm.
Now I'm not sure if I understand the concept correctly or if I'm overlooking something obvious. The panels both open the main vue page, there i route them to the specific app page. Again, both panels work perfect, they do communicate with eachother and with their AEFT/host.jsx and ILST/host.jsx.
If anyone has an idea where I go wrong, please point me in the right direction!
I will paste my manifest here:
<?xml version='1.0' encoding='UTF-8'?>
<ExtensionManifest ExtensionBundleId="com.example.panel" ExtensionBundleVersion="1.0.0" ExtensionBundleName="examplepanel" Version="8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ExtensionList>
<Extension Id="com.example.panel.aeft" Version="1.0.0" />
<Extension Id="com.example.panel.ilst" Version="1.0.0" />
</ExtensionList>
<ExecutionEnvironment>
<HostList>
<Host Name="ILST" Version="[23,99.9]" />
<Host Name="AEFT" Version="[16,99.9]" />
</HostList>
<LocaleList>
<Locale Code="All" />
</LocaleList>
<RequiredRuntimeList>
<RequiredRuntime Name="CSXS" Version="8.0" />
</RequiredRuntimeList>
</ExecutionEnvironment>
<DispatchInfoList>
<Extension Id="com.example.panel.aeft">
<DispatchInfo>
<Resources>
<!-- <MainPath>./public/index-dev.html</MainPath> -->
<MainPath>./dist/index.html</MainPath>
<ScriptPath>./src/host/AEFT/host.jsx</ScriptPath>
<CEFCommandLine>
<Parameter>--disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure,NetworkService</Parameter>
<Parameter>--disable-site-isolation-trials</Parameter>
<Parameter>--enable-nodejs</Parameter>
<Parameter>--mixed-context</Parameter>
</CEFCommandLine>
</Resources>
<Lifecycle>
<AutoVisible>true</AutoVisible>
</Lifecycle>
<UI>
<Type>Panel</Type>
<Menu>Example Panel 1</Menu>
<Geometry>
<Size>
<Height>100</Height>
<Width>100</Width>
</Size>
<MaxSize>
<Height>1000</Height>
<Width>1000</Width>
</MaxSize>
<MinSize>
<Height>100</Height>
<Width>100</Width>
</MinSize>
</Geometry>
<Icons />
</UI>
</DispatchInfo>
</Extension>
<Extension Id="com.example.panel.ilst">
<DispatchInfo>
<Resources>
<!-- <MainPath>./public/index-dev.html</MainPath> -->
<MainPath>./dist/index.html</MainPath>
<ScriptPath>./src/host/ILST/host.jsx</ScriptPath>
<CEFCommandLine>
<Parameter>--disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure,NetworkService</Parameter>
<Parameter>--disable-site-isolation-trials</Parameter>
<Parameter>--enable-nodejs</Parameter>
<Parameter>--mixed-context</Parameter>
</CEFCommandLine>
</Resources>
<Lifecycle>
<AutoVisible>true</AutoVisible>
</Lifecycle>
<UI>
<Type>Panel</Type>
<Menu>Example Panel 2</Menu>
<Geometry>
<Size>
<Height>100</Height>
<Width>100</Width>
</Size>
<MaxSize>
<Height>1000</Height>
<Width>1000</Width>
</MaxSize>
<MinSize>
<Height>100</Height>
<Width>100</Width>
</MinSize>
</Geometry>
<Icons />
</UI>
</DispatchInfo>
</Extension>
</DispatchInfoList>
</ExtensionManifest>
Copy link to clipboard
Copied
I now realise that when I earlier described only one Extension in the manifest, it showed the extension in the menu only once. I changed that because the right host.jsx did not load and I thought to solve it with these two <scriptPaths> in the manifest. I will remove one and go with the js side solution
var csInterface = new CSInterface();
csInterface.hostEnvironment.appId;
// if AEFT
// else if ILST
Copy link to clipboard
Copied
that makes sense, because it really is just one panel. so why describe it twice in the manifest anyway.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now