Xamarin.Forms Branch.io getting deep link after install - xamarin.forms

I've integrated Branch.io to my Xamarin.Forms app using IBranchBUOSessionInterface. I changed my App class signature to this:
public partial class App : Application, IBranchBUOSessionInterface
and i have a method inside the class implementing the interface:
public async void InitSessionComplete(BranchUniversalObject buo, BranchLinkProperties blp)
Now deep linking works when i have the app installed, this method is invoked and i can get the data through the buo object metadata.
If the app is not installed, the user is correctly redirected to the relevant app store, but once the user downloads the app I expected the same method be invoked on first launch to retrieve the referral deeplink from branch automatically, but it doesnt.
Should i be using IBranchSessionInterface instead of IBranchBUOSessionInterface? I didnt understand their difference anyways.. Or should i be calling a method specifically for first launch? Since I only need this on first launch..

If you are following the example here, which uses IBranchBUOSessionInterface, deferred deep linking should work as well. If you are still running into issues, could you please write in to integrations#branch.io with your Branch key, AppDelegate.cs file, and test link. Thanks!

Related

How to deploy changes in an existing Progress PASOE aplication when some method is added

I have a deployed application in Progress 4GL PASOE that is working in Production, but now we had to add a new method to the Business Entity class. We did it locally with Developer Studio and, after restarting the instance, it works as expected. However, I don´t know how to apply this changes to Production. I have already copied the .r/.cls files to the corresponding openedge folder and also the service json file with the catalog to the webapp folder. I have restarted the pasoe instance (tcman stop/tcman start) and restarted service, but if I make a request through Postman it raises a 500 error:
What else should we have to do? Is it necessary to delete the instance and do the whole deploy again to just add a new method?
The log file is throwing the following exception:
2021-06-16T16:44:30.500+02:00 WARN [thd-1] nynweb:r:0000000b o.a.cxf.phase.PhaseInterceptorChain - Interceptor for usuari has thrown exception, unwinding now
java.lang.NullPointerException: null
"usuari" is a table which is in the catalogue indeed.
Please let me know if you need some clarifying data to fully understand my problem.
Many thanks in advance.
Regards.
Normally, to add new methods to existing classes, I update the classes in the application directory and export the services again by OpenEdge, creating a ROOT.zip. I always use the incremental deploy so I delete the agents and then, when calling the created method, it will respond.
A tip to check if the method is published is important to access http://server:port/rest/; there you will see the catalogs that are published and also if your new method is available.

Intent Extension for Siri Shortcuts works in Sample App not in existing project

I am trying to use Intents Extension in my existing Obj-C project for conversational shortcuts in iOS 13. I have followed all the steps and the procedures work fine in a sample app.
But when I try it out in my existing application the intents fail to launch and it is automatically redirected to my parent app.
The console error is as follows
[Intents] -[INCache cacheableObjectForIdentifier:] Unable to find cacheable object with identifier intents-remote-image-proxy:?proxyIdentifier=2A439A9B-6D95-BFB2-FCE4-31408D1E677F.png&storageServiceIdentifier=com.apple.Intents.INImageServiceConnection in cache.
Has anyone faced such an issue with intents? Please share your thoughts on this.
Additional Info:
The intent is registered. Have implemented the 'handle' 'resolve' methods and have also declared them in the interface.
Have the extension's min deployment target same as the parent (which created an issue that I had missed previously).
The issue was created due to setting up 'Copy only when installing' boolean as 'true' in 'Embed App Extensions' under 'Build Phases'. It was resolved once the check was made 'false'.

What's the proper way of setting up MvvmCross 6.0 Xamarin.Forms UWP application code?

I have my UWP Application inherited from Base class, which inherits from MvxApplication<Setup, CoreApp>:
public sealed partial class App : WindowsApplication
{
public App()
{
InitializeComponent();
}
}
public class WindowsApplication : MvxApplication<Setup, CoreApp>
{
}
public class Setup : MvxWindowsSetup<CoreApp>
{
public override IEnumerable<Assembly> GetViewAssemblies()
{
// need to do this as otherwise I receive the message that corresponding view to view model is not found
var assemblies = base.GetViewAssemblies().ToList();
assemblies.Add(typeof(Forms.App).Assembly);
return assemblies;
}
}
However, when launching it, receiving the following error message:
The type MvxContentPagePresentationAttribute is not configured in the
presenter dictionary
As I understand, all that is not proper way to launch Xamarin.Forms MvvmCross application, as UWP App and Setup should be inherited from something like MvxFormsApplication and MvxFormsWindowsSetup<CoreApp, Forms.App> respectively (to have Xamarin.Forms app properly initialized).
But:
MvxFormsApplication is not generic and doesn't provide ability of passing Forms-generic setup.
even if I inherit the App from MvxFormsApplication and use this.RegisterSetupType<MvxFormsWindowsSetupInheritor>();, Visual Studio compiler never allows me to compile the project because of some weird error message (something like The name “WindowsApplication” does not exist in the namespace “…”) (this might be some issue of Visual Studio, but I have VS 15.7 version, which expects the code to work (again, MvvmCross declares they support UWP and XF)).
So, from my understanding, if there is Xamarin.Forms app, there must be also some way of passing actually Xamarin.Forms App class to the UWP App class initialization.
MvvmCross, again, stands for UWP and Xamarin.Forms support, but I can't see any clear example of the way to setup such type of application.
MvvmCross documentation as always is quite "modest". There are some instructions about setting up MvvmCross UWP app as well as setting up MvvmCross XF iOS/Android, but the only word about MvvmCross XF UWP is:
You are now free to place your custom renderers in a different
assembly. All you have to do to make it work is to add your assembly
to the Setup.ViewAssemblies collection.
(in official website docs)
(which is still sounds weird, as iOS and Android versions don't need that additional code, which makes me think that such (current) documentation isn't quite actualized)
and
UWP, WPF
Extend App from MvxApplication. ( App : MvxApplication { } )
from MvvmCross.Forms package readme.txt file, when all other platforms, again, expect inheritance for the app classes from MvxForms*-based ones.
MvvmCross guys, any thoughts on that?
When I set up a new Xamarin.Forms project, I always follow the Playground sample in the MvvmCross GitHub as this example evolves along with the API and is always up-to-date, as it is part of the MvvmCross solution, so any commits need to preserve its functionality. So if you want to see how everything should look in a minimal UWP + Xamarin.Forms project see the Playground.Forms.UI and Playground.Forms.Uwp projects in the linked folder.

class is not public in package. cannot be called from outside package

I am implementing audio/video call in my android application.
I am getting following error while importing the AppRTCAudioManager class.
com.quickblox.videochat.webrtc.AppRTCAudioManager is not public in com.quickblox.videochat.webrtc cannot call from outside package.
How to resolve this error.
in version 2.5.2 Quickblox Android SDK, added AppRTCAudioManager class to manage audio settings manually, so refer to this link http://quickblox.com/developers/Sample-webrtc-android#Manage_Audio_settings. And also you can look at sample VideoChat http://quickblox.com/developers/Sample-webrtc-android

Get property of object Alfresco

I'm using Alfresco 5.1 Community, and i'm trying to get a property of an object for example, in the user we have:
"{http://www.alfresco.org/model/content/1.0}companytelephone"
If I want to get the value of this property, how can I obtain this in javascript?
It depends where you're trying to do this, if you're doing this in a JavaScript controller for a WebScript on the Repository then you will be able to find most of the information in this Wiki page: https://wiki.alfresco.com/wiki/JavaScript_API_Cookbook
If you're doing it in the JavaScript controller of a WebScript running on Share then for most objects you'll need to request the full metadata for the node by calling a REST API on the Repository.
In the case of the user, there is a "user" object available in WebScripts running on the Share tier.
There is lots of information on getting this kind of data with some basic Googling, I'd also recommend launching the Rhino debugger via the WebScripts index page so you can try evaluating JavaScript code (this works for both the Repository and for Share).

Resources