URL Scheme Handled by a Rev Application

Andres Martinez andres at bakno.com
Thu Jan 24 19:54:54 EST 2008


Hello Andre

I made it work putting the handler into the stack script.

It is clear it would not run on windows, what I want to know is how to  
get parameters sent to the application on Windows.

Regards,
Andres Martinez
www.baKno.com

On Jan 24, 2008, at 7:06 PM, Andre Garzia wrote:

> Andres,
>
> this needs to be put into a frontscript. Put it into a button and
> insert the button into the front. And no, this will not work on
> windows, this is a pure mac os technology.
>
> Andre
>
> On 1/24/08, Andres Martinez <andres at bakno.com> wrote:
>> Thanks again Andre
>>
>> I was confused thinking that I needed to create an AppleScript but
>> then I figured out that the script you provided is to include into my
>> Rev project, correct?
>>
>> Is there any way of getting these same parameters on Windows Rev
>> applications?
>>
>> Regards,
>> Andres Martinez
>> www.baKno.com
>>
>> On Jan 24, 2008, at 6:16 PM, Andre Garzia wrote:
>>
>>> Andres,
>>>
>>> create a frontscript and trap the appleEvent event. Look for a event
>>> like GURL (it's GURLGURL). I used to have a example of that  
>>> somewhere
>>> nearby.
>>>
>>> You need the frontscript because Revolution IDE will trap the events
>>> before you if you don't use one. It's something like:
>>>
>>> on appleEvent theClass,theID -- execute a set of statements in a
>>> text file
>>> if theClass is "GURL" and theID is "GURL" then
>>>   request appleEvent data -- get the content of the AppleEvent into
>>> the it variable
>>>   -- now do your stuff
>>> end if
>>> pass appleEvent
>>> end appleEvent
>>>
>>> Andre
>>> On 1/24/08, Andres Martinez <andres at bakno.com> wrote:
>>>> Thanks Andre
>>>>
>>>> I finally made it work by rebuilding the Launch Services database.
>>>>
>>>> Now the part I don't know yet is how to receive the parameters in  
>>>> my
>>>> Rev App.
>>>>
>>>> For example if  the URL is   myapp:parameters
>>>>
>>>> How can I read those parameters when the  system invokes the Rev  
>>>> App?
>>>>
>>>> Regards,
>>>> Andres Martinez
>>>> www.baKno.com
>>>>
>>>> On Jan 24, 2008, at 6:01 PM, Andre Garzia wrote:
>>>>
>>>>> Andres,
>>>>>
>>>>> I am searching for doing the same thing. By altering the plist,  
>>>>> you
>>>>> also need to touch the file to advertise to Finder that it needs  
>>>>> to
>>>>> refresh its database. There are other ways too. The best way would
>>>>> be
>>>>> to create an external binding into the launch services API.
>>>>>
>>>>> In the past, I did a hack that could do this kind of stuff by
>>>>> altering
>>>>> some plists and default entries on mac os x tiger.
>>>>>
>>>>> check this post http://article.gmane.org/gmane.comp.ide.revolution.user/73700
>>>>>
>>>>> I had a stack to create such custom protocol entries for mac os x,
>>>>> but
>>>>> I can't find it... maybe it was destroyed with my old machine when
>>>>> it
>>>>> fried. :-) If I find it and you still want it, I can send to you.
>>>>>
>>>>> andre
>>>>>
>>>>> On 1/24/08, Andres Martinez <andres at bakno.com> wrote:
>>>>>> Hello again,
>>>>>>
>>>>>> With more google search I found the following...
>>>>>>
>>>>>> ------------------------------------------
>>>>>> Here is what you need to do to register your app for a custom URL
>>>>>> scheme (for the example we will use a "myapp" scheme).
>>>>>> 1) In your Info.plist, add a new entry for CFBundleURLTypes?:
>>>>>>
>>>>>> <key>CFBundleURLTypes</key>
>>>>>>      <array>
>>>>>>              <dict>
>>>>>>                      <key>CFBundleURLName</key>
>>>>>>                      <string>MyApp's URL</string>
>>>>>>                      <key>CFBundleURLSchemes</key>
>>>>>>                      <array>
>>>>>>                              <string>myapp</string>
>>>>>>                      </array>
>>>>>>              </dict>
>>>>>>      </array>
>>>>>> 2) Somewhere in your application's startup code (e.g. init), add
>>>>>> this
>>>>>> code:
>>>>>>
>>>>>> - (void)registerMyApp
>>>>>> {
>>>>>>      [[NSAppleEventManager sharedAppleEventManager]
>>>>>> setEventHandler:self
>>>>>> andSelector:@selector(getUrl:withReplyEvent:)
>>>>>> forEventClass:kInternetEventClass andEventID:kAEGetURL];
>>>>>> }
>>>>>>
>>>>>> - (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:
>>>>>> (NSAppleEventDescriptor *)replyEvent
>>>>>> {
>>>>>>      NSString *url = [[event
>>>>>> paramDescriptorForKeyword:keyDirectObject]
>>>>>> stringValue];
>>>>>>      // now you can create an NSURL and grab the necessary parts
>>>>>> }
>>>>>> ------------------------------------------
>>>>>>
>>>>>> Now, I need to know how can I run such code from within my Rev  
>>>>>> app.
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Andres Martinez
>>>>>> www.baKno.com
>>>>>>
>>>>>> On Jan 24, 2008, at 4:15 PM, Andres Martinez wrote:
>>>>>>
>>>>>>> Hello
>>>>>>>
>>>>>>> I found the following text in this page...
>>>>>>> http://www.euronet.nl/~tekelenb/playground/security/URLschemes/
>>>>>>>
>>>>>>> --------------------------------------------------
>>>>>>> "The Finder automatically registers all applications as it  
>>>>>>> becomes
>>>>>>> aware of them, such as [...] when the user navigates to a folder
>>>>>>> containing them."
>>>>>>>
>>>>>>> Part of that registration involves LaunchServices (an under-the-
>>>>>>> hood
>>>>>>> thing, somewhat similar/related to InternetConfig) to check if a
>>>>>>> thusly found application advertises itself as being capable of
>>>>>>> handling a specific URL scheme. If the executable can do http  
>>>>>>> for
>>>>>>> example, it will contain that information in such a way that
>>>>>>> Finder
>>>>>>> can access it (and pass the info on to LaunchServices).
>>>>>>> --------------------------------------------------
>>>>>>> Does anybody know how to include this type of information into  
>>>>>>> OSX
>>>>>>> Rev applications?
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Andres Martinez
>>>>>>> www.baKno.com
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> use-revolution mailing list
>>>>>>> use-revolution at lists.runrev.com
>>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>>>> subscription preferences:
>>>>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>>>>
>>>>>> _______________________________________________
>>>>>> use-revolution mailing list
>>>>>> use-revolution at lists.runrev.com
>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>>> subscription preferences:
>>>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> http://www.andregarzia.com All We Do Is Code.
>>>>> _______________________________________________
>>>>> use-revolution mailing list
>>>>> use-revolution at lists.runrev.com
>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>> subscription preferences:
>>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>>
>>>> _______________________________________________
>>>> use-revolution mailing list
>>>> use-revolution at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>>
>>>
>>>
>>> --
>>> http://www.andregarzia.com All We Do Is Code.
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your  
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>
>
> -- 
> http://www.andregarzia.com All We Do Is Code.
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list