I created an extension that can communicate with my native C # application using Google Chrome native messaging.
However, Google's Chrome Webstore policy states:
Do not post an app where the primary functionality is to install or launch another app, theme, or extension. For example, if your app’s primary function is to launch a desktop app that the user has already installed, that is not allowed. Another example is a Chrome App that just launches a website.
So, how can I use native messaging and publish my extension on the webstore?
Thanks
Finally my extension has been accepted on the webstore with the only use of native messaging so yes we can publish an extension with only this feature and this is not a cause of reject, my issue came from the fact that i forgot to validate my website for the extension .
Related
As Blazor can run on client side via WebAssembly, can we develop/design Google Chrome extensions using Blazor?
I have developed a package to be able to build a Blazor WebAssembly application into a chrome extension.
Checkout the repo on GitHub for a step by step instruction how to convert your project to a Blazor chrome extension project.
Check out this Github repo that demonstrates a Hello World Chrome Extension written in Blazor. It has no interaction with Chrome APIs but does show how to package up a Blazor app as an extension.
https://github.com/traxium/webassembly-chrome-extension
You should be able to use Javascript Interop to call browser APIs, but I don't know of any way to call them directly. An open source project that mapped the browser APIs to C# would be ideal here.
Yup! We can develop/design Google Chrome extensions using Blazor-webassembly-app.
I'm building a chrome extension using asp.net 5.0 in blazor-webassembly-app.
I have faced so many difficulty till now and right now I am continuously facing difficulty its because no one in the world tried it yet and I am researching on it while building my POC (proof of concept).
I am developing a UWP app wherein I have created a UWP project, Windows Packaging project, Class library, console application(windows application).
Here the UWP app communicates with the console app(win23) by sending request and getting responses from the methods created in the Win32 app. This is done by using FullTrust permission.
But, now I want to add another Fulltrust permission app in this project that will run independently whenever i call this app. Also, these two win32 apps will not have any user interface but will only acts as a background process. So in the new win32 I am implementing the functionality where I am accessing my Microsoft Office outlook contacts.
So If I declare this new win32 app in the Package.manifest file of the Packaging project and run the app. It gives me an error saying We can have only one fullTrust permission in the project.
Please can you guide me how to go about this.
While you can have only a single fulltrust process extension declared in the manifest, you can certainly launch as many full trust processes as you like. The way to do this is by creating a launcher process and declare that as your fulltrust process extension. From that launcher you can then launch any number of other EXEs depending on a parameter that you pass to the launcher.
This approach is explained in detail here with complete sample code:
https://stefanwick.com/2018/04/06/uwp-with-desktop-extension-part-2/
For completeness: another option (more complex and maybe not what you want) is to declare multiple objects in your manifest. The additional objects can be fulltrust applications that you launch from your UWP via the AppListEntry API.
I followed these two docs (Doc1, Doc2) to integrate Feedback hub in my app. I used NuGet to install the Microsoft Store Services SDK.
As recommended I am using StoreServicesFeedbackLauncher.IsSupported() to check if the Feedback hub is available or not. This works locally on my machine, but in production all customers hit System.Exception with message "Method 'StoreServicesFeedbackLauncher.IsSupported()' was not included in compilation, but was referenced in HomePage.<feedback_tapped>d__23.MoveNext(). There may have been a missing assembly."
I have read the docs again and don't seem to have missed any of mentioned the steps.
Edit
This app is a Desktop Bridge app. The solution has a UWP app which communicates with a win32 exe. I am trying to launch the app from UWP app. The solution has a Windows Application Packaging project to package the app.
I am trying to achieve similar to this When the 'Play' button is clicked, it detect whether 'Roblox' application is installed on client machine or not. If it is not installed, it prompt the user to download and install it.
I have my web application build in MVC C# and a WinForm Application(.exe) C#. I am trying to launch .exe when a button is clicked on the web page in browser. If the .exe is not installed, prompt the user to download and install the .exe. If it is already installed, then launch it. I have followed these steps, but did not understand how to check if .exe is already installed on client machine or not. Do I have to create a browser Plugin or Extension to achieve this.
Please advice.
So, after 1 week hunting over the internet, I found the solution.
From Google Chrome -
Create an extension using native messaging like here (skip the
registry part in this step). This extension will be used to send message to the
registry.
If you haven't published the extension on Google Chrome store, then
on the web page, use chrome.runtime.sendNativeMessage to check
whether the extension is installed or not. If you get positive
response, it means extension is already installed.
If the extension is published, see here how to detect and
launch extension in google chrome
Create your desired .exe and a setup. Make sure to create registry values while
developing setup project. (see here) Registry value will have the path to .exe
Finally, when the extension is launched, it looks for registry
values and .exe path in the registry and the .exe is launches.
For Mozilla Firefox -
Create Firefox native messaging extension and follow the same steps above.
Hope this helps to my friends. Cheers!!!
I am using Ghostscript.NET in order to convert a PDF page into a jpg. This all works fine when I run it locally, but when I publish it to an Azure website then I get the error:
"This managed library is running under 32-bit process and requires 32-bit Ghostscript native library installation on this machine! To download proper Ghostscript native library please visit: http://www.ghostscript.com/download/gsdnld.html"
Obviously I can't just install Ghostscript on the server that the Azure Website is running on, I don't have access to do that. Is there any way that I can include a Ghostscript library in the publishing profile, and have Ghostscript.NET read from that?
Alternatively, is there any package that would allow me to convert a PDF page to a jpg thumbnail on an ASP.NET server without using Ghostscript at all? I have also tried GhostScriptSharp and had no luck with that either.
You could try to install native ghostscript library to your local machine and get gsdll32.dll (or gsdll64.dll if you are running in x64 bit environment) which you can deploy to your server along with the other dlls.
Take a look at this example how to tell Ghostscript.NET where to search for the native ghostscript library dll: https://github.com/jhabjan/Ghostscript.NET/blob/master/Ghostscript.NET.Samples/Samples/CustomGsdllLocationSample.cs
You have a few options.
Host your website as an Azure Cloud Service Web Role. This allows you to react to the server being created and you can run installation programs (if you can automate them) to prep the machine.
Split this functionality out into an Azure Cloud Service Worker Role (where you can do the same machine prep) and have it respond to an Azure Queue item. This way your website remains pretty much as is.
Be careful though, Cloud Services can get expensive if they are just sitting there doing nothing because its still running on a VM. You can have your Cloud Service scale based on the queue having items or not.