Buildfire - Can I send users paths to the app outside of the app itself? - buildfire

If I want a user fill out something within the app, can I give them a path that leads to the plugin within the app itself? For example when you try to open a google maps link on your phone and you have the google maps app it will just open the app.

If you are looking to deep-link into the app from outside your app, this is achieved through custom schema and a deep-link. So each app is issued a unique schema on the OS. You're used to schemas like "http" or "ftp" and so on. Custom schemas are registered on the OS to let then operating system know if they see this schema/protocol that your app is responsible for consuming it. For example, facebook is "fb://". You can contact customer support to see if your app has been issued one and what is it.
The second part of this is to deep-link to a particular plugin you can find a quick shortcut to it on the control side of your plugin in the Control Panel
.
Once you've gotten the app to open, then made it navigate to the plugin you want. The last step is optional but good to know. YOu can pass query-string parameters to the plugin so it may take further action from within. For example, you can have it prefill information or navigate to a subsection of the plugin.
Here is an example:
app683a5d://plugin/cb705192-fe4c-44e9-8032-34c9ee0a186a-1560793060569?firstName=Daniel&tel=555-555-5555
app683a5d:// Tells the OS which app to open
plugin/cb705192-fe4c-44e9-8032-34c9ee0a186a-1560793060569 tells the app which plugin instance to open
?firstName=Daniel&tel=555-555-5555 passes along data to the plugin to consume
Here are some helpful references:
Deep-Links https://github.com/BuildFire/sdk/wiki/Deep-Links
Navigation from within the app https://github.com/BuildFire/sdk/wiki/How-to-use-Navigation

Related

How to embed a web browser inside a web app made in node.js ?

I currently have a web app made in node.js. One feature of this app is to take notes. I want to provide the user with a way to browse the internet and select a text to add as a note in our web app without having to manually copy-pasting from one browser window to our app.
I know I can do this relatively simply using a Chrome extension that would be linked to the user account and would save the note to the database. However, I cannot use this approach since not all my users can install Google Chrome.
Therefore, I am looking for a way to browse the web from inside our web app. For example, it could be in an iFrame where we display a complete browser. That way, the user could navigate the web for information from inside the app, select text to save and click on a button (probably located outside the iFrame browser) to save the selected text as a note in our database.
How can I achieve such a thing in node.js ?
This is, essentially, impossible.
For you to get any data about the site the user was browsing you could either:
Restrict them to browsing sites willing to partner with you to give you permission to access their data via postMessage (a technical change on their part to work around the Same Origin Policy)
Proxy every request through your server which would:
Have large bandwidth requirements
Require a lot of rewriting of URLs (including dynamically generated ones in JS)
Require rewriting of X-Frames-Options and Access-Control-Allow-Origin headers
Need users who would trust you with all the data you passed through your system (including their passwords to third party sites)
Not work for Intranet sites (since your server could not reach them)

Azure App Services - login to test page

I'm trying to login to the App Services test page so I can open the help page but I can't seem to find the login credentials anywhere. Any idea how can I log in? I used Mobile Services before where I can find this pretty easily: https://blogs.msdn.microsoft.com/musings_on_alm_and_software_development_processes/2014/10/23/azure-mobile-services-prompts-you-for-a-username-and-password/ but this article seems outdated for App Services.
That is the default configuration Home page. There is the .UseDefaultConfiguration() method invoked in the Startup.MobileApp.cs. The part of that is the AddMobileAppHomeController() which depends on the corresponding Microsoft.Azure.Mobile.Server.Controllers.HomeController reference. You may want to remove that from the configuration and add the configuration and the view that you want to see (i am not sure that MobileAppHomeController page you see can be customized). Reference

Mount Split gem dashboard within Rails_Admin

I have a Rails 4.2 app that uses rails_admin to manage CRUD actions for its models. It requires current_user.admin? == true for access.
I have just added A/B testing using the Split gem. I want to use the same authorization to allow admin only to view the split dashboard and thought the easiest way might be to create the route within the admin panel such that the dashboard would be available at example.com/admin/split.
I can mount the Split::Dashboard at 'admin/split' but that simply bypasses the admin authorization altogether.
Instead, I want to add a button/link with the rails_admin dashboard that redirects to admin/split where the dashboard is mounted within rails_admin.
Help appreciated.
split's webinterface is a sinatra app. It will not know anything about the rails_admin engine just by mounting it into the same url path. Check out the doc for the split interface https://github.com/splitrb/split#web-interface.
and https://steve.dynedge.co.uk/2011/12/09/controlling-access-to-routes-and-rack-apps-in-rails-3-with-devise-and-warden/
Rack::Auth::Basic will obviously not work for you, since it's basic http auth. So you have to use the second method by sticking you custom request middleware. The current_user will not be available there, since it's added by typical auth gems into the rails controllers. However if your lib is using warden for authentication ( like devise does), the info will be in request.env['warden']. Otherwise you will have to get the session id out the request.env["rack.session"]

Use of OData in a web application instead of other

I read in an article that odata can be used for different combination of clients/servers.
Say I would like to develop a web application where i store data(say information about all mobile products on market) using mongoDB and use python as backend with Bottle framework to access data through browser as GET.
Then i decide to extend web app as android app. i can extend it to android without any code change on server side.
My doubt is does using odata here helps in any way? Say if i want to extend it to other clients?
Yes, you are right, you don't need to change even a single line of code on the server side if you change a client app. OData defines many conventions for the communications between the client and the server. such as:
What the URL looks like if you want to query some data
http://services.odata.org/V4/OData/OData.svc/Products?$filter=ID gt 2&$select=ID,Name,Rating,Price&$orderby=Price desc
Which http method should be used to Create/Retrieve/Update/Delete an entity
Generally speaking, Post for Create, Get for Retrieve, Patch/Put for Update, Delete for Delete.
What the payload looks like.
How to invoke a function/action
As long as the requests conform to these conventions, the server side always returns the predictable responsese regardless whether the clients is a browser or a mobile device.
I also find the examples for the odata:
https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ .
Hope this helps you.

Browser plugin which can register its own protocol

I need to implement a browser plugin which can register its own protocol (like someprotocol://someurl) and be able to handle calls to this protocol (like user clicking on 'someprotocol' link calls function inside my plugin). As far as I understand, Skype does something similar, except I need to handle links within page context and not in a separate app. Any advice on how this can be done? Can this be done without installing my own plugin, with the help of flash/java?
Things are going to be slightly more complicated than you think.
You're going to have to create an entire application, not just a browser plugin (that plugin can be part of your application). The reason I consider it to be a complete application is that you're going to need to modify registry settings on the client machine to register your custom URL handler.
Here's an MSDN article describing exactly what you have to do to register the custom URL handler on a Windows client:
Registering an Application to a URL Protocol

Resources