2010-11-05 5 views
1

J'ai suivi scrupuleusement les étapes décrites dans http://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx afin d'enregistrer un protocole URL personnalisé que je devrai utiliser pour intégrer une application que j'écris en C# avec Pocket Internet Explorer. L'idée est de cliquer sur un lien similaire à xpto://something/?with=1&parameters=2 et d'ouvrir l'application instantanément.Essayer d'enregistrer un schéma d'URL (protocole personnalisé) dans Windows Mobile 6.1

Voici ce qui a été me passe:

  1. Si je me inscrire seul le protocole, il ne fonctionne pas du tout. IE se plaint d'une erreur Cannot open 'xpto://something/?with=1&parameters=2'. Either it is not signed with a trusted certificate or one of its components cannot be found..

  2. Si j'enregistre également un .xpto filetype, en utilisant la méthode http://www.1-script.com/forums/IE-Windows-Mobile-MIME-Handler-What-s-the-solution-article7966--15.htm, je peux obtenir l'application d'ouvrir uniquement lorsque l'URL commence par xpto:// et se termine par .xpto, comme xpto://somehost/file?parameters=1.xpto. C'est la seule fois où cela fonctionne réellement. Aucune erreur.

  3. Si j'inscris le type de fichier uniquement en utilisant la méthode ci-dessus, l'utilisation d'une URL comme http://somehost/test.xpto permet à IE d'afficher sa boîte de dialogue de téléchargement sans avoir la possibilité d'ouvrir directement le fichier.

Je pourrais aller avec le numéro 2, mais, en plus d'être méchant comme l'enfer, je voudrais vraiment savoir ce qui se passe ici. C'est le deuxième jour que je suis autour de cela et je ne trouve aucune réponse sur internet à ce sujet. J'ai passé en revue mes entrées de registre des milliers de fois et n'ai trouvé aucune erreur ou fautes de frappe.

Voici mon .inf pour l'installation de la cabine, en ce qui concerne les clés de registre créées. Lors de l'exploration de l'appareil mobile avec un éditeur de registre, je trouve que %InstallDir% se règle très bien, les guillemets aussi bien. Le premier groupe enregistre le type de fichier et le second le protocole d'URL.

[RegKeys] 
"HKCR",".xpto","","0x00000000","xptofile" 
"HKCR",".xpto","Content Type","0x00000000","application/x-xpto" 
"HKCR","xptofile","","0x00000000","xpto File" 
"HKCR","xptofile","EditKeys","0x00010001","65536" 
"HKCR","xptofile\Shell","","0x00000000","" 
"HKCR","xptofile\Shell\Open","","0x00000000","" 
"HKCR","xptofile\Shell\Open\Command","","0x00000000","""%InstallDir%\xpto.exe"" ""%%1""" 

"HKCR","xpto","","0x00000000","XPTO Protocol" 
"HKCR","xpto","URL Protocol","0x00000000","" 
"HKCR","xpto\DefaultIcon","","0x00000000","xpto.exe,0" 
"HKCR","xpto\Shell","","0x00000000","" 
"HKCR","xpto\Shell\Open","","0x00000000","" 
"HKCR","xpto\Shell\Open\Command","","0x00000000","""%InstallDir%\xpto.exe"" ""%%1""" 

Mon application se trouve dans la mémoire interne du téléphone. Qu'est-ce que je fais mal?

Répondre

3

eu à travailler en suivant les instructions sur ce blog:

http://thegrayzone.co.uk/blog/2010/08/custom-url-protocol-in-windows-ce/

Apparemment, la documentation MSDN omet une clé qui devrait également être ajouté sous HKEY_LOCAL_MACHINE:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\URLProtocols\xpto 

xpto est le schéma de votre protocole URL, ici appliqué à ce cas. Ajouté et il fonctionne apparemment bien maintenant, ayant seulement enregistré le protocole xpto (aucune association de type de fichier .xpto nécessaire).

Questions connexes