Link to open Gmail/SuperHuman message - ios

Is there any way to create a link to open a specific message in Gmail or SuperHuman on iOS?
For Gmail I've found the scheme googlegmail:///cv=13eafcee7cc82901/accountId=1&create-new-tab, however I have no idea where to find such id. As the id that is now used in the web client is 64 characters long and not hexadecimal. Also, there are no mentions on how to control the account, as one typically will have the account address not the number.
There are also reports saying that this no longer works, but an article written some months ago still claims the scheme works.
For SuperHuman I have not found anything, as it not yet not publicly available.
For the stock email app one can use message://<insert_your_message_id#here.com>.

For Superhuman, the answer is Cmd+K and type in Copy Page Link. The link will be copied to the clipboard. Alternatively, Ctrl+/ will do the same thing.
There is an answer over at https://webapps.stackexchange.com answer. The short of it to use the rfc822msgid: operator.

Related

How do I implement deferred deep linking in an iOS app?

I want to implement deferred deep linking in my iOS app as a means of tracking referrals. When a user of my app wants to refer a friend, I'll generate a URL that has a unique referral code. When the other person receives the link and opens it, I want it to take them to my app's page in the App Store. Then if they install my app, when it first opens, I need a way for it to read the referral code from the original URL.
I've found may pages about deferred deep linking on the web but none that really explain how to do it. Instead, these pages all end up telling you to install some third-party code or use some commercial service. This isn't what I'm after. I want to learn how to do this myself.
There are lots of old pages out there that recommend convoluted and error-prone solutions, like tracking the user's IP address, putting the referral code into the clipboard, or somehow obtaining it from a cookie in a web view. I don't think these are the correct solutions to be using in 2022.
If anyone can recommend the appropriate resource, I'd appreciate it.
If it is the case that Apple simply doesn't want us to do this and doesn't provide any support for it, then I'd like to know that too. I was under the impression that they did, but maybe I'm wrong.
Thanks,
Frank
Apple's Universal Links allow for this (would understand the difference between the typical URL Scheme and Universal Links as threshold). This assumes you're willing to do some lifting server-side along with other hurdles on the iOS side, largely administrative.
A benefit of Universal Links and the server-side work is that you're provided a fallback webpage if a user does not have the app installed. Since the app should open if downloaded, you could typically just redirect to the app store from this URL. In this case, though, before any redirects, you could execute an operation to decode the unique params passed in the URL and persist it in a remote data store. The data encoded needs to be required and verifiably unique during your registration -- email seems ideal.
If that's feasible, your standard registration flow could require email verification with a link to the app as a mandatory entry point (think slack magic link). When the user submits his/her email to verify, you could first check that email against your data store to see if it maps to any previously decoded referrals saved from the flow above. If so, you could generate a unique link for this email to your app with params that will direct the deferred/deep link.
The good news is, I found a solution. I could construct a web page that redirects the user to the app store, but before doing so, copies some text into their clipboard (without telling them or asking them to do anything). Then later if they install my app I can get the text by pasting from the clipboard. I tested this idea and it works.
The bad news is, starting with iOS 16, Apple now asks you for permission to paste. So if you try to do this, your user will launch your app and immediately get promoted with a message asking them to allow a paste from Safari. I expect most users will deny the request and just the fact that they saw it will erode their trust in the app (I know I wouldn't trust an app that tried consume my clipboard without a direct command from me).

Program UIButton to open Facebook app to specific page, and same for twitter and instagram

I am building an app that when you click a button labeled "Facebook", "Twitter", or "Instagram", it will open the respective app and take you to the specific page I set. I've been searching non-stop for answers for the last week, if anyone can help I would greatly appreciate it!
I have been all over StackOverflow and other forums and videos and cannot find the answer to this question. Either the solutions I find are outdated and do not work anymore or are not exactly what I want.
Please note: typically a question like this is not going to get very useful answers on SO. In the future, try to be more specific and show a little work. However, I appreciate how it can be difficult to search for a solution when you don't know the correct terminology. The term you are looking for is "URL scheme"
Each app has its own URL schemes for opening specific pages and/or websites. You will need to check their documentation and/or search online to see if you can find the URL schemes you need. There was an unofficial website listing a lot of these, but it is no longer maintained.
For example, to open a specific Facebook profile page (could be a person, or a company, etc) use:fb://profile/<page id>" replacing the with the Facebook ID corresponding to the page. This is a numeric value, you can find it sometimes in the URL, but http://findmyfbid.com/ is a useful resource for this.
Then you can simply trigger open on the shared UIApplication instance to open the URL. But keep in mind the user may not have Facebook installed, so you should use canOpenURL to check if the URL scheme you are trying to use is supported, and if not you can just open the URL in a browser.
However, some apps may have implemented the new features for Universal linking, so the device may automatically open the appropriate page if you just provide a standard URL, like https://facebook.com/<page_id>. I suggest playing around with it.
Note, for each URL scheme you want to be able to check canOpenURL with, you will need to add it to your app's plist.
Since I already have Instagram and Twitter handy here are their basic schemes for opening a user's page:
instagram://user?username=<username>
twitter://user?screen_name=<username>
Note: there are other URL schemes that these apps support (e.g. you could link to a location page, or a specific tag, on Instagram) so you should check their documentation for more information on URL schemes.

Do iOS App Short Links Take a While to Activate?

I know that once your app is ready for sale, it can take a while to propagate to all of Apple's servers. Is the same thing true of short links of the form http://appstore.com/myapp?
I can find my application on the store through search, and it can be downloaded. Direct links using the Application ID lead to the app perfectly. However, using the short link created following the directions here gives me an "Item not Found" error.
My app has been up for about 7 hours. This is rather important, because I use the short link from within the app to invite new users.
Thanks in advance!
It seems that it does indeed take a few hours for Apple to link the short URL to the full one. In my case, it took 12 hours.

Change prompt message of itms-services installation

Right now, I have a link defined as such:
<a>itms-services://?action=download-manifest&url=https://loqi.me/install/Geoloqi.plist"</a>;
When a user clicks on this link, the following message is shown:
The message consists of the domain-name where the .ipa resides and the application name as defined in the plist. Is it possible to change this prompt message?
The short answer: No. That is not possible.
And it actually makes allot of sense.
Since enterprise apps does not go though any app review it is fairly simple to make an app that's spy on the user or steal data. With the current system the user at least get information about the domain/publisher of the app.
Consider such an "evil" app signed with a valid enterprise license identifying itself as "Important update from Apple" or something similar...
Try
<key>CFBundleDisplayName</key>
<string>MyAppDisplayName</string>
https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW1

Display All Apps By One Developer / Company

I want to open iTunes with list of all the apps by a particular developer or company and in this very case my own applicaitons.
The problem is I don't know how should the URL string be
itms://itunes.com/apps/xxxx
what should I replace this xxx with ? and where would I find this text. Is it the company name? If so, should I look for it in developer account's profile info.
What else could be used? I heard there is some artistId or something like that. If so, how do I find it?
Well if you know the developer or company that you're looking for beforehand, you can use Apple's iTunes Link Maker web utility to generate links for the appstore (or any store really). You just put the developer's / company name in 'Search' field and set 'Media Type' to iOS Apps (or whatever you need). After the search is completed click on the appropriate result link under 'Artists' and you'll be presented with a sheet containing a link like this:
http://itunes.apple.com/us/artist/vasileios-akoinoglou/id339374807?uo=4
Note that you can safely replace http:// with itms:// so to avoid a redirection (if you use http then the link is first opened in Safari and then in Appstore).
As I can see from the link the components after artist is the developer / company name (whitespaces are replaced by dashes) and the id I think is the enrollment id (edit: it's not). I hope that this will be useful to you.
The iTunes lookup API will also help in this case - simply replace the adamID for any app in the following URL:
http://itunes.apple.com/lookup?id=524731580
In the results, look for the artistViewUrl to determine the best URL to link to all apps developed by this Seller
Your URL should be in this format for the AppStore app to open it on iOS:
http://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?media=software&term=ideal%20development%20aps
This basically performs a search on a term in the appstore. it is the only bulletproof solution we have found, but it might be problematic if your developer name accidentally matches another developer or product. Also note that sometimes the search fails, in which case the AppStore app needs to be closed completely.

Resources