AS Application as Protocol Helper do not work in MacOSX 10.4.2

I know how it work in MacOSX 10.3.9

For example:

lets create AS Application with the following content:


on open location foo
display dialog foo
end

-Save as Application Bundle
-Browse package contents and edit “Info.plist”
-Modify CFBundleSignature (it was “aplt” and it is now “CACA”)
-Add the magical lines in the plist file:


<key>CFBundleURLTypes</key> 
   <array> 
       <dict> 
           <key>CFBundleURLName</key> 
           <string>mailto handler</string> 
           <key>CFBundleURLSchemes</key> 
           <array> 
               <string>myProtocol</string> 
           </array> 
       </dict> 
   </array>

-Modify the “PkgInfo”
(this example is from this forum)

I can register a new Protocol Helper with help of MoreInternet

It works perfect in 10.3.9 but do not work in 10.4.3.
When I try to start working I get the follosing message:
Safari can’t open “myProtocol:51p:132:014:1:1:20:C” because Mac OS X doesn’t recognize Internet addresses starting with “myProtocol:”.

I suggest that MoreInternet do not work correctly in 10.4.3.
But this is not true. I can regiser any Application using MoreInternet (for example TextEdit, Internet Explorer) as Protocol Helper for myProtocol and can see that I can get this Application using link myProtocol:bla-bla

Could you please help me to understand what else AS Application needs for work as Protocol Helper in MacOSX 10.4.3

Kostya:

I can’t help with your question, but I’ll be interested to see the solution.

I have worked a little bit with protocol helpers too (mostly on OS 9). I have ordered 10.4.3 and will be testing my own protocol(s) on X soon… but I have no answer now… just a wild guess.

Here is a snippet from the Opera .plist:

CFBundleURLTypes


CFBundleURLName
http URL
CFBundleURLSchemes

http



CFBundleURLName
https URL
CFBundleURLSchemes

https



CFBundleURLName
ftp URL
CFBundleURLSchemes

ftp



CFBundleURLName
file URL
CFBundleURLSchemes

file


Maybe instead of “mailto handler” (as CFBundleURLName) you need to use “mailto URL” ???

Only a shot in the dark.

Peter B.


Kostya:

One other suggestion (courtesy of another scripter who knows about protocols)…

It may be that LaunchServices isn’t ‘seeing’ your new app as unique. Compress (Stuff) the app, throw away the original, then uncompress the Stuffit file and test it as a protocol.

Possibly a log out / log in or a restart may be necessary.

Good Luck.

Peter B.


Peter Bunn

Thanks for reaction.
Everything, that you offer, I have already done. Without success.
A problem in distinction 10.3 and 10.4 and here it is necessary to know, instead of to guess.
I hope somebody from participants of a forum knows and will help me.
Excuse my wrong English

I reproduced your steps and works here pretty fine. Perhaps you did something wrong? A typo somewhere? What does it happen if you double-click your app?

I’ll mention the steps again, just in case.

  1. Open the Script Editor and write (I called “zoso” to both my app and protocol, signature “ZOSO”):
on open location x
	if x starts with "zoso:" then
		display dialog "zoso invoked:" & return & return & x with icon note
	else
		display dialog "Someone told me I should open:" & return & return & x with icon note
	end if
end open location
  1. Save as application-bundle.

  2. Modify PkgInfo, setup as “APPLZOSO”.

  3. Modify Info.plist, setup as (this is just a copy-paste, I only modified both CFBundleSignature, and added the text from “CFBundleURLTypes” thru “”, the one before “WindowState”):

  1. Zip the “zoso” applet. Delete the “zoso” applet. Empty trash. Unzip.

  2. Invoke it as “zoso:hello” (system showed the dialog “You are opening the application zoso for the first time. Are you sure blah, blah, blah?”, and zoso said hello).

As far as I know, the auto-register-url-schemes-with-Launch-Services function is intact in Tiger…

If it still doesn’t work for you with a fresh attempt, what tools are you using to modify “PkgInfo” and “Info.plist”? I used Resorcerer for “PkgInfo” (you could use as well Tex-Edit Plus, pico, etc.), and Smile for “Info.plist” (you could use as well Property List Editor, Resorcerer, pico, etc.). The main goal is that you don’t edit the files with something which althers the real contents of the files. They must remain as plain text files. Eg, you shouldn’t use Microsoft Word or Disk Utility (the last one was just a quick joke).