2010-03-10 4 views
2

J'écris le livre d'aide pour mon application. Au besoin, j'ai les clés CFBundleHelpBookName et CFBundleHelpBookFolder dans info.plist de mon application, et j'utilise le nouveau format de bundle .help de Snow Leopard pour le manuel d'aide. Les différentes clés dans Rehearsals.help/Contents/Info.plist sont toutes remplies selon le Apple Help Programming Guide. Comme prévu, lorsqu'un utilisateur choisit "Répétition Aide" dans le menu Aide, la page d'index de mon aide (dans la localisation appropriée, actuellement seulement en anglais) est ouverte dans Aide Viewer.Comment utiliser une URL d'aide: dans un pack .help Snow Leopard?

Cependant, il existe actuellement (actuellement) deux fichiers HTML dans le bundle, index.html et support.html. Je crois comprendre que si je place une ancre nommée dans un fichier, comme ceci:

<a name="support"></a> 

Ensuite, je peux créer un lien vers elle de l'autre fichier, comme celui-ci:

<a href="help:anchor=support bookID=info.thaesofereode.Rehearsals.help">Support</a> 

Cependant, cela ne pas travail. Ni ne:

<a href="help:anchor=support">Support</a> 

visionneuse d'aide affiche une feuille disant, et si je tourne la consignation de débogage dans la visionneuse d'aide et helpd, je vois ce "Help Viewer ne peut pas ouvrir ce contenu.":

10/03/2010 15:46:02 HelpViewer[2049] decidePolicyForNavigationAction: help:anchor=support%20bookID=info.thaesofereode.Rehearsals.help 
10/03/2010 15:46:02 HelpViewer[2049] decidePolicyForNavigationAction: apple-help-content:help:anchor=support%2520bookID=info.thaesofereode.Rehearsals.help 
10/03/2010 15:46:02 HelpViewer[2049] willSendRequest: <NSMutableURLRequest apple-help-content:help:anchor=support%2520bookID=info.thaesofereode.Rehearsals.help> 
10/03/2010 15:46:02 HelpViewer[2049] Start loading apple-help-content:help:anchor=support%2520bookID=info.thaesofereode.Rehearsals.help 
10/03/2010 15:46:02 HelpViewer[2049] Starting search for query "support" with return port com.apple.helpd-26755 
10/03/2010 15:46:02 helpd[2050] PID #2050 - received message #0: HPDStartMessageID 
10/03/2010 15:46:02 helpd[2050] Process 2049 requested callback at com.apple.helpd-26755 and sent query: HPDQuery 289928762.026442: "support" in ("info.thaesofereode.Rehearsals.help") of types ("com.apple.HelpArticleResult") with limit 0 
10/03/2010 15:46:02 helpd[2050] Run loops which have yet to start: (
    "com.apple.kbPlugin", 
    "com.apple.helpbookPlugin" 
) 
10/03/2010 15:46:02 helpd[2050] Search for this query has been delayed 1 time: support 
10/03/2010 15:46:02 helpd[2050] Delayed search for query: "support" 
10/03/2010 15:46:02 helpd[2050] Starting help articles search for query: "support" 
10/03/2010 15:46:02 helpd[2050] Query 289928762.026442 returned results: (
) 
10/03/2010 15:46:02 helpd[2050] Response sent to port: com.apple.helpd-26755 
10/03/2010 15:46:02 helpd[2050] Query finished: HPDQuery 289928762.026442: "support" in ("info.thaesofereode.Rehearsals.help") of types ("com.apple.HelpArticleResult") with limit 0 
10/03/2010 15:46:02 helpd[2050] Response sent to port: com.apple.helpd-26755 
10/03/2010 15:46:02 HelpViewer[2049] <HVAnchorURLHandler: 0x1002bde50> finished query: HPDQuery 289928762.026442: "support" in ("info.thaesofereode.Rehearsals.help") of types ("com.apple.HelpArticleResult") with limit 0 
10/03/2010 15:46:02 HelpViewer[2049] <HVAnchorURLHandler: 0x1002bde50> has results: { 
} 
10/03/2010 15:46:02 HelpViewer[2049] Found no results for support 

Comment puis-je utiliser correctement l'aide: les URL des ensembles d'aide de Snow Leopard? (Inutile de dire que je connais la solution pour utiliser les URL de fichiers relatifs, et cela fonctionne, mais je veux obtenir des ancres d'aide pour l'aide contextuelle et les liens dans l'application.)

Répondre

6

Il se trouve les ancres et les URL sont correct, et helpd indexe automatiquement le contenu, mais il maintient un cache agressif. Si le livre d'aide est mis à jour sans dépasser le numéro de version, il ne recherche pas de nouvelles ancres.

rm -rf ~/Library/Caches/com.apple.help* 
killall helpd 
+0

Merci! J'ai passé des heures à déterminer pourquoi nos ancres ne fonctionnaient pas - tuer les caches était le truc. –

0

Avez-vous indexé votre aide avec l'index d'ancrage sélectionné? dans les préférences de l'utilitaire Help Indexer? On dirait que l'ancre ne indexe pas ...

Bien sûr, je voudrais aussi vérifier les noms mes ancres depuis, mais j'oublier les choses 10 minutes après avoir fait ou les dire ...

+0

Merci @ drstrangeP0rk. helpd est supposé auto-indexer les livres d'aide dans Snow Leopard, mais je suis allé de l'avant et l'indexé avec l'indexation d'ancre activée. Aucune différence. Et je suis sûr que les ancres correspondent :-) –