問題

get URL scheme from this file

思考

The user has not connected any internal knowledge sources at the moment, and has not uploaded any files in the conversation yet. Do not explicitly mention which sources they can connect to.

Thought for 9s

回答

I don’t have the file yet (there are no uploads available in this chat), so I can’t extract the URL scheme.

Please upload the file here (or paste the relevant contents—e.g., the Info.plist / Android manifest / config section), and I’ll return the URL scheme(s) immediately.

問題

Info.plist

get URL scheme from this file

Python

python
import plistlib, pathlib, json, re, os, textwrap path="/mnt/data/Info.plist" with open(path,'rb') as f: data=plistlib.load(f) type(data), list(data.keys())[:20] (dict, ['CFBundlePackageType', 'UILaunchStoryboardName', 'NSLocationAlwaysUsageDescription', 'DTPlatformVersion', 'UISupportsDocumentBrowser', 'DTSDKBuild', 'NFCReaderUsageDescription', 'CFBundleIcons~ipad', 'LSRequiresIPhoneOS', 'NSCameraUsageDescription', 'FirebaseAppDelegateProxyEnabled', 'CFBundleDisplayName', 'com.apple.developer.nfc.readersession.iso7816.select-identifiers', 'DTXcodeBuild', 'CFBundleLocalizations', 'CADisableMinimumFrameDurationOnPhone', 'CFBundleIdentifier', 'UIDeviceFamily', 'LSApplicationQueriesSchemes', 'CFBundleSignature'])

Python

python
'CFBundleURLTypes' in data, data.get('CFBundleURLTypes')[:1] if data.get('CFBundleURLTypes') else None (True, [{'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.fts']}])

Python

python
url_types=data.get('CFBundleURLTypes',[]) schemes=[] for t in url_types: for s in t.get('CFBundleURLSchemes',[]): schemes.append(s) schemes, url_types (['com.fts', 'com.googleusercontent.apps.403375715630-9guek8pbahnf5qcdu8k94n1eucg72jtd', 'com.googleusercontent.apps.527721678855-024qu3umka7glpdggiakrlmtffhgn0jo', 'com.googleusercontent.apps.197630849164-kh4njhb2hsuue41e3vovvd96tfegj2sb', 'com.googleusercontent.apps.631902360664-8siftcflr4314ilq2d0qbhj7kht12so1', 'com.googleusercontent.apps.210730715059-g95mcb2o2ji7mjfejr5vi0udn4d8q7gg', 'com.googleusercontent.apps.751583243006-t4q5qdi707h2pl8hvkusu3q4nl7s9st6', 'com.googleusercontent.apps.697825903879-cjvpav8lsj45uql5fa2j8idc7kocnmrg', 'com.googleusercontent.apps.410034623087-hqrc54j54m60pcdp3tltlogoq06ofaio', 'com.googleusercontent.apps.581249355204-2kgblj9du5ionajp5cdpemfg87fsjbhs', 'com.googleusercontent.apps.609589628434-7ak168b86odu8q1vjnh2rorjf35bcr9v', 'com.fts.metro'], [{'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.fts']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.403375715630-9guek8pbahnf5qcdu8k94n1eucg72jtd']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.527721678855-024qu3umka7glpdggiakrlmtffhgn0jo']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.197630849164-kh4njhb2hsuue41e3vovvd96tfegj2sb']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.631902360664-8siftcflr4314ilq2d0qbhj7kht12so1']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLName': 'https'}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.210730715059-g95mcb2o2ji7mjfejr5vi0udn4d8q7gg']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.751583243006-t4q5qdi707h2pl8hvkusu3q4nl7s9st6']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.697825903879-cjvpav8lsj45uql5fa2j8idc7kocnmrg']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.410034623087-hqrc54j54m60pcdp3tltlogoq06ofaio']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.581249355204-2kgblj9du5ionajp5cdpemfg87fsjbhs']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.609589628434-7ak168b86odu8q1vjnh2rorjf35bcr9v']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLName': 'Bundle ID', 'CFBundleURLSchemes': ['com.fts.metro']}])

Python

python
aqs=data.get('LSApplicationQueriesSchemes',[]) aqs[:50], len(aqs) (['https', 'http', 'tel', 'SacombankPay'], 4)

思考

aqs=data.get('LSApplicationQueriesSchemes',[]) aqs[:50], len(aqs)

(['https', 'http', 'tel', 'SacombankPay'], 4)

Thought for 42s

回答

From /mnt/data/Info.plist, the app registers these URL schemes under CFBundleURLTypesCFBundleURLSchemes:

  • com.fts
  • com.fts.metro
  • com.googleusercontent.apps.403375715630-9guek8pbahnf5qcdu8k94n1eucg72jtd
  • com.googleusercontent.apps.527721678855-024qu3umka7glpdggiakrlmtffhgn0jo
  • com.googleusercontent.apps.197630849164-kh4njhb2hsuue41e3vovvd96tfegj2sb
  • com.googleusercontent.apps.631902360664-8siftcflr4314ilq2d0qbhj7kht12so1
  • com.googleusercontent.apps.210730715059-g95mcb2o2ji7mjfejr5vi0udn4d8q7gg
  • com.googleusercontent.apps.751583243006-t4q5qdi707h2pl8hvkusu3q4nl7s9st6
  • com.googleusercontent.apps.697825903879-cjvpav8lsj45uql5fa2j8idc7kocnmrg
  • com.googleusercontent.apps.410034623087-hqrc54j54m60pcdp3tltlogoq06ofaio
  • com.googleusercontent.apps.581249355204-2kgblj9du5ionajp5cdpemfg87fsjbhs
  • com.googleusercontent.apps.609589628434-7ak168b86odu8q1vjnh2rorjf35bcr9v

Also present (not “handled URL schemes”, but queryable schemes) under LSApplicationQueriesSchemes:

  • https, http, tel, SacombankPay

問題

can i create shortcut from input above by url

Python

python
import plistlib, pathlib, json, textwrap p=pathlib.Path('/mnt/data/Info.plist') data=plistlib.loads(p.read_bytes()) data.keys(), type(data.get('CFBundleURLTypes')) (dict_keys(['CFBundlePackageType', 'UILaunchStoryboardName', 'NSLocationAlwaysUsageDescription', 'DTPlatformVersion', 'UISupportsDocumentBrowser', 'DTSDKBuild', 'NFCReaderUsageDescription', 'CFBundleIcons~ipad', 'LSRequiresIPhoneOS', 'NSCameraUsageDescription', 'FirebaseAppDelegateProxyEnabled', 'CFBundleDisplayName', 'com.apple.developer.nfc.readersession.iso7816.select-identifiers', 'DTXcodeBuild', 'CFBundleLocalizations', 'CADisableMinimumFrameDurationOnPhone', 'CFBundleIdentifier', 'UIDeviceFamily', 'LSApplicationQueriesSchemes', 'CFBundleSignature', 'CFBundleInfoDictionaryVersion', 'CFBundleIcons', 'CFBundleSupportedPlatforms', 'LSMinimumSystemVersion', 'UIMainStoryboardFile', 'ITSAppUsesNonExemptEncryption', 'MinimumOSVersion', 'CFBundleName', 'CFBundleShortVersionString', 'UIStatusBarHidden', 'UIBackgroundModes', 'UIRequiredDeviceCapabilities', 'CFBundleExecutable', 'UIViewControllerBasedStatusBarAppearance', 'UISupportedInterfaceOrientations~ipad', 'DTAppStoreToolsBuild', 'BuildMachineOSBuild', 'UIApplicationSupportsIndirectInputEvents', 'DTPlatformName', 'NSMicrophoneUsageDescription', 'NSLocationWhenInUseUsageDescription', 'DTCompiler', 'CFBundleVersion', 'CFBundleDevelopmentRegion', 'FlutterDeepLinkingEnabled', 'CFBundleURLTypes', 'NSFaceIDUsageDescription', 'NSLocationAlwaysAndWhenInUseUsageDescription', 'BGTaskSchedulerPermittedIdentifiers', 'DTSDKName', 'DTPlatformBuild', 'NSPhotoLibraryUsageDescription', 'UISupportedInterfaceOrientations', 'DTXcode']), list)

Python

python
url_types=data.get('CFBundleURLTypes',[]) url_types [{'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.fts']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.403375715630-9guek8pbahnf5qcdu8k94n1eucg72jtd']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.527721678855-024qu3umka7glpdggiakrlmtffhgn0jo']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.197630849164-kh4njhb2hsuue41e3vovvd96tfegj2sb']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.631902360664-8siftcflr4314ilq2d0qbhj7kht12so1']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLName': 'https'}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.210730715059-g95mcb2o2ji7mjfejr5vi0udn4d8q7gg']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.751583243006-t4q5qdi707h2pl8hvkusu3q4nl7s9st6']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.697825903879-cjvpav8lsj45uql5fa2j8idc7kocnmrg']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.410034623087-hqrc54j54m60pcdp3tltlogoq06ofaio']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.581249355204-2kgblj9du5ionajp5cdpemfg87fsjbhs']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.609589628434-7ak168b86odu8q1vjnh2rorjf35bcr9v']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLName': 'Bundle ID', 'CFBundleURLSchemes': ['com.fts.metro']}]

Python

python
data.get('LSApplicationQueriesSchemes') ['https', 'http', 'tel', 'SacombankPay']

思考

Answering about creating shortcuts with URL schemes

Yes, you can create a Shortcut in iOS to open an app using URL schemes like com.fts://. Deep links may require additional path information, and for universal links, domains might be involved. Google’s googleusercontent schemes aren’t reliable and are meant for OAuth redirects. To create a Shortcuts icon: 1. Open Shortcuts 2. Tap + for a new shortcut.

Providing steps to create a shortcut with URL schemes

To create a shortcut, use the "Open URLs" or "Open URL" action and provide a URL like com.fts:// or com.fts.metro://. You can also use the "Open App" action for a more reliable launch. If sharing via URL, try shortcuts://run-shortcut?name=<Shortcut Name>. For universal links, you need the associated domains in the entitlements, not in the plist.

Helping to launch an iOS app using shortcuts

To create a shortcut, try using com.fts:// or com.fts.metro://. If you want to include a path like com.fts://some/path?param=1, you'll need to check the app's code to discover the exact route. For Flutter-based apps, searching through certain code files or examining the iOS code might help. For simple app launches, the "Open App" action is the best option.

Thought for 1m 16s

回答

Yes — on iOS you can make a Shortcut that opens the app via one of those custom URL schemes.

Easiest (reliable) option: Shortcut that opens a URL

  1. Open Shortcuts+ (new shortcut)
  2. Add action Open URLs (or Open URL)
  3. Put one of these in the URL field (start simple):
    • com.fts://
    • com.fts.metro://
  4. (If needed) add the next action Open URL (some iOS versions split “set URL” vs “open URL”)
  5. Save → optionally Share → Add to Home Screen

Notes / gotchas

  • The com.googleusercontent.apps.... schemes are typically Google sign-in redirect schemes (OAuth). They usually aren’t meant as user deep links.
  • A scheme alone may only open the app if it handles an “empty” path. If nothing happens, try adding a dummy path:
    • com.fts://home
    • com.fts.metro://home (Whether those routes work depends on what the app actually supports.)

If your goal is just “open the app”

Use the Shortcuts action Open App → pick the app. That doesn’t depend on deep-link routes.

If you tell me what screen you want the shortcut to open (e.g., “tickets”, “profile”, “scan”), I can suggest what the deep link usually looks like — but the exact path has to match what the app implements.

問題

i want to open tickets

Python

python
import plistlib, pathlib, re, json, textwrap, os, sys, pandas as pd p = pathlib.Path("/mnt/data/Info.plist") data = plistlib.loads(p.read_bytes()) list(data.keys())[:50], len(data.keys()) (['CFBundlePackageType', 'UILaunchStoryboardName', 'NSLocationAlwaysUsageDescription', 'DTPlatformVersion', 'UISupportsDocumentBrowser', 'DTSDKBuild', 'NFCReaderUsageDescription', 'CFBundleIcons~ipad', 'LSRequiresIPhoneOS', 'NSCameraUsageDescription', 'FirebaseAppDelegateProxyEnabled', 'CFBundleDisplayName', 'com.apple.developer.nfc.readersession.iso7816.select-identifiers', 'DTXcodeBuild', 'CFBundleLocalizations', 'CADisableMinimumFrameDurationOnPhone', 'CFBundleIdentifier', 'UIDeviceFamily', 'LSApplicationQueriesSchemes', 'CFBundleSignature', 'CFBundleInfoDictionaryVersion', 'CFBundleIcons', 'CFBundleSupportedPlatforms', 'LSMinimumSystemVersion', 'UIMainStoryboardFile', 'ITSAppUsesNonExemptEncryption', 'MinimumOSVersion', 'CFBundleName', 'CFBundleShortVersionString', 'UIStatusBarHidden', 'UIBackgroundModes', 'UIRequiredDeviceCapabilities', 'CFBundleExecutable', 'UIViewControllerBasedStatusBarAppearance', 'UISupportedInterfaceOrientations~ipad', 'DTAppStoreToolsBuild', 'BuildMachineOSBuild', 'UIApplicationSupportsIndirectInputEvents', 'DTPlatformName', 'NSMicrophoneUsageDescription', 'NSLocationWhenInUseUsageDescription', 'DTCompiler', 'CFBundleVersion', 'CFBundleDevelopmentRegion', 'FlutterDeepLinkingEnabled', 'CFBundleURLTypes', 'NSFaceIDUsageDescription', 'NSLocationAlwaysAndWhenInUseUsageDescription', 'BGTaskSchedulerPermittedIdentifiers', 'DTSDKName'], 54)

Python

python
data['CFBundleURLTypes'] [{'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.fts']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.403375715630-9guek8pbahnf5qcdu8k94n1eucg72jtd']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.527721678855-024qu3umka7glpdggiakrlmtffhgn0jo']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.197630849164-kh4njhb2hsuue41e3vovvd96tfegj2sb']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.631902360664-8siftcflr4314ilq2d0qbhj7kht12so1']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLName': 'https'}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.210730715059-g95mcb2o2ji7mjfejr5vi0udn4d8q7gg']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.751583243006-t4q5qdi707h2pl8hvkusu3q4nl7s9st6']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.697825903879-cjvpav8lsj45uql5fa2j8idc7kocnmrg']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.410034623087-hqrc54j54m60pcdp3tltlogoq06ofaio']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.581249355204-2kgblj9du5ionajp5cdpemfg87fsjbhs']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLSchemes': ['com.googleusercontent.apps.609589628434-7ak168b86odu8q1vjnh2rorjf35bcr9v']}, {'CFBundleTypeRole': 'Editor', 'CFBundleURLName': 'Bundle ID', 'CFBundleURLSchemes': ['com.fts.metro']}]

Python

python
def find_strings(obj, needle): hits=[] def rec(o, path=""): if isinstance(o, dict): for k,v in o.items(): rec(v, f"{path}/{k}") elif isinstance(o, list): for i,v in enumerate(o): rec(v, f"{path}[{i}]") elif isinstance(o, (str, bytes)): s=o.decode() if isinstance(o, bytes) else o if needle.lower() in s.lower(): hits.append((path,s)) rec(obj,"") return hits find_strings(data, "ticket")[:20], len(find_strings(data,"ticket")) ([], 0)

Python

python
[k for k in data.keys() if "Shortcut" in k or "shortcut" in k] []

Python

python
[k for k in data.keys() if "Activity" in k or "activity" in k] []

Python

python
data.get("CFBundleIdentifier"), data.get("CFBundleDisplayName"), data.get("CFBundleName") ('com.fts.metro', 'HCMC Metro HURC', 'HCMC Metro HURC')

思考

data.get("CFBundleIdentifier"), data.get("CFBundleDisplayName"), data.get("CFBundleName")

('com.fts.metro', 'HCMC Metro HURC', 'HCMC Metro HURC')

Thought for 1m 52s

回答

Yes — you can create an iOS Shortcut that opens the app via a URL scheme.
From your Info.plist, the two app schemes you should use are:

  • com.fts.metro:// (most likely primary — it matches the Bundle ID)
  • com.fts://

Shortcut to open Tickets

Create a new Shortcut → add Open URL (or Open URLs) and try these URLs (in this order):

  1. com.fts.metro://tickets
  2. com.fts.metro:///tickets (triple slash is sometimes required when there’s no “host”)
  3. com.fts.metro://mytickets
  4. com.fts://tickets
  5. com.fts://mytickets

Then save the Shortcut → ShareAdd to Home Screen (optional).

If none of those open the Tickets screen

That usually means the app doesn’t expose a deep link route for Tickets (the plist only tells us the scheme exists, not what paths/screens are supported).

Your reliable fallback:

  • Shortcut action Open App → pick the app (it will open, just not directly to Tickets)

If you want, tell me what the Tickets screen is called exactly in the UI (e.g., “My Tickets”, “QR Tickets”, “Ticket Wallet”), and whether there’s a Share button on that screen—shared links often reveal the exact deep link/universal link format to use.

分享這個問答