Я написал небольшой файл python, который я упаковываю как .app и устанавливаю на macos (последняя версия).Приложение предназначено для запуска с использованием пользовательского протокола, похожего на «abc: // efg / ijk / lmn».Файл python использует пакет pyobjc и намеревается использовать его для реализации бизнес-логики.У меня есть возможность использовать только язык Python для реализации моей бизнес-логики из-за устаревших причин.
Мне нужно получить доступ к вызывающему пользовательскому URL "abc: // efg / ijk / lmn" изнутри кода Pythonи разобрать значения.«Efg», «ijk» и «lmn» в пользовательском URL будут различаться и будут использоваться для принятия некоторых решений в дальнейшем.
Я перепробовал несколько вещей из того, что я мог найти в Интернете, но я не могу получить доступ к пользовательскому URL-адресу с помощью в коде Python.Значение sys.argv имеет следующий вид: sys.argv = ['/Applications/XXXXXApp.app/Contents/MacOS/XXXXXApp', '-psn_0_4490312']
Но в Windows sys.argv [0] имеет значениезаполнен пользовательским URL.
Буду признателен за любые указания.
Ниже приведен код, который я пробовал среди многих других его вариантов.
`из импорта какао NSObject
mylogger = open (os.path.expanduser (" ~ /Desktop / somefile.txt "), 'w +')
class apple_event_handler (NSObject):
def applicationWillFinishLaunching_(self, notification):
mylogger.write("Will finish ")
def applicationDidFinishLaunching_(self, notification):
mylogger.write("Did Finish")
def handleAppleEvent_withReplyEvent_(self, event, reply_event):
theURL = event.descriptorForKeyword_(fourCharToInt(b'----'))
mylogger.write("********* Handler Invoked !!! *********")
mylogger.write("********* the URL = " + str(theURL))
mylogger.write(*self.args)
aem = NSAppleEventManager.sharedAppleEventManager ()
aeh = apple_event_handler.alloc (). init ()
aem.setEventHandler_andSelector_forEventClass_andEventID_ (aeh, "handleAppleEvent: withReplyEvent:", 1, 1) `