iOS Question Question Regarding Use of: #QueriesSchemes

Marroq Spoulinker

Member
Licensed User
Longtime User
In the recent post about the release of B4i 2.3:
https://www.b4x.com/android/forum/threads/b4i-v2-31-has-been-released.59437/#content

@Erel mentions this new attribute: #QueriesSchemes
"Due to a new security feature in iOS 9 you need to list all the schemes that your app passes to App.CanOpenURL."

My app functions kind of like a directory. I have a list that can be all sorts of things for our company, phone numbers, web sites, facebook and twitter profiles, applications, etc. The list is stored in the app files, but is also downloaded from our company website if there is a newer version (that way, we can easily update the list through our website without having to update the application every time).

The loading other applications part has given me some trouble in iOS. This worked great on Android, because I was able to indicate the app scheme as a primary address and the Google Play address as a secondary, so that the app would load if it was installed, or it would load up in Google Play if it wasn't. But in iOS, due to their URL Scheme functionality, I can only load the apps if they have a published URL Scheme. So I'm already limited to routing to the App Store in most cases, even if the app is installed on the device. But now it sounds like I have to hard-code the URL Schemes I am calling into the attributes, which would hamper the ability to load the list from our website as I'm doing with Android.

I've been trying to find more information about this #QueriesSchemes attribute and really haven't found much. What exactly do I need to be putting in there (what's the syntax, etc.)? Can I use wild cards like https://itunes.apple.com/* in order to indicate that I may have many different schemes that work through iTunes App Store, but not directly listing each individual one? Or do I have to list every single URL Scheme that I'm going to be running?

I'm not really an expert with Apple, and I'm hoping there is someone that understands this requirement of iOS 9 or can point me in the right direction.

Thank you!
 
Last edited:

Marroq Spoulinker

Member
Licensed User
Longtime User
Thank you so much @Erel. That really helps.
It is interesting that the other thread didn't turn up when I was searching about the QueriesSchemes around the message board. But at least I'm heading in the right direction now.

I think this iOS limitation (er... um... security enhancement) puts the last nail in the coffin of my app being able to load other apps that are installed on the device. But at least now I know I can keep accessing them through the iTunes App Store URLs, so it's not as bad as I was fearing it would be.
 
Upvote 0
Top