I'm working on Word add-in and I use editing of content controls which is still not suported in Word online, I also use Binding.bindingDataChanged event which is also not supported in Word online.
Without features that uses these capabilities the add-in is is not usefull at all for the users. I would like to submit the add-in to the Office store, but to make it available only in Word desktop version.
For this purpose i have tried to use Requirement sets specification in the manifest xml file. I have ckecked requirement sets documentation page https://dev.office.com/reference/add-ins/requirement-sets/office-add-in-requirement-sets but could not find what sets I should use. Binding.bindingDataChanged event I think should belong to BindingEvents requirement set, but the documentation states that this set is supported by Word Online. I also dont know how to specify that I need content controls editing capabilites by using requirements sets.
I tried to add all requirement sets needed for Word desktop 2016 I found here https://dev.office.com/add-in-availability so that my manifest requirement sets part looks like this
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="BindingEvents"/>
<Set Name="CompressedFile"/>
<Set Name="CustomXmlParts"/>
<Set Name="DocumentEvents"/>
<Set Name="File"/>
<Set Name="HtmlCoercion"/>
<Set Name="ImageCoercion"/>
<Set Name="OoxmlCoercion"/>
<Set Name="TableBindings"/>
<Set Name="TableCoercion"/>
<Set Name="TextBindings"/>
<Set Name="TextFile"/>
<Set Name="Settings"/>
<Set Name="TextCoercion"/>
<Set Name="MatrixCoercion"/>
<Set Name="MatrixBindings"/>
<Set Name="WordApi" MinVersion="1.2"/>
</Sets>
</Requirements>
But still when I test it by adding the add-in to my sharepoint apps catalog and try to use it from Word online by going to Insert->Office Add-ins it still shows in under MY ORGANIZATION so I'm able to click on it and load it in the task pane. Is there a way to prevent the add-in to be available in Word online using reqirement sets in manifest file or should i use runtime checks or something else?
I will quote documentation statement at Set the Hosts element ...
"Note: The Name attribute specifies the Office host application that can run your add-in. Office hosts are supported on different platforms and run on desktops, web browsers, tablets, and mobile devices. You can't specify which platform can be used to run your add-in. For example, if you specify Mailbox, both Outlook and Outlook Web App can be used to run your add-in."
Basically it says you cannot make add-in available only for Desktop version via manifest. You still have the option to check the host at run time as described over there: Use runtime checks in your JavaScript code. You may also look at Additions to Office.context.