I able able to create links successfully using href="arcgis-survey123://...", but I'm not able to launch a custom app with "custom-app-name://...". I am able to launch the custom app using that URL in web browser on android, but clicking on it in the Collector popup does nothing. Does Collector only support opening ESRI apps in this way?
Look this Survey123 documentation which have a list of Esri and other apps URL schemes.
You can try a similar approach of this GeoNet blog post.
In Collector, it seems to work pretty simply - just put the links in a text field as-is; nothing else appears to be required.
A web map with these links works fine for me in Collector. In Collector I go to edit one of these points and am able to click on the link and it opens in a new window.
Right, it opens https links just fine, but it won't open a custom app URL such as "custom-app-name://..." (using deep linking). Is that only supported with other ESRI apps?
I'm following this example, but using a different URL than arcgis-survey123://
It will work, but you have to know how the non-Esri app is called by. For example, you can use:
It was listed by the documentation Integrate with other apps—ArcGIS Survey123 | Documentation.
I was able to get it working using https scheme instead of a custom one. Just needed to add an additional intent filter for the https URI to my AndroidManifest file: Create Deep Links to App Content | Android Developers