Plugins de Maxthon - Comment faire
Tout dΘvelopper /Tout replier

pour Maxthon Version 1.2.1

Questions gΘnΘrales α propos des Plugins : (+)

  1. Object COM :

    L'objet COM doit Ωtre implΘmentΘ dans l'interface IMyIEClient. Se reporter α IMyIE.h.

  2. Fichier Exe :

    Tous fichier win32 exΘcutables peuvent Ωtre utilisΘs comme plugin. Maxthon enverra differents paramΦtres dans certaines circonstances.
    ParamΦtre gΘnΘral :
    a. "-h=handle" : handle est le Wnd handle de la fenΩtre principale de Maxthon, de format dΘcimal.

  3. Fichier Script :

    Les fichiers de Script doivent Ωtre Θcris suivant le format suivant :

    Exemple :
    <script language="Javascript">
    alert(document.lastModified);
    </script>

    Le 'langage' doit Ωtre n'importe quel langage valide supportΘ par Internet Explorer.

Haut

Comment implΘmenter la fonction "Config" d'un Plugin ? (+)

Il y a un bouton 'Configurer' dans la page des options des 'Plugins de Maxthon'. Maxthon appellera la fonction 'Configurer' correspondante au plugin, lorsque l'utilisateur cliquera sur le bouton 'Configurer'.

  1. Objet COM :

    L'objet COM IMyIEClient::Config doit Ωtre appelΘ avec comme paramΦtre le hWnd handle de la boite de dialogue de configuration.

  2. Fichier Exe :

    Le fichier doit Ωtre appelΘ avec le paramΦtre "-setup". Par exemple, si le fichier est "abc.exe", alors Maxthon appellera "abc.exe -setup ..." .

  3. Fichier Script : (Disponible pour Maxthon version 1.1.067 et supΘrieure)

    Lorsque l'utilisateur clique sur le bouton 'configurer' dans la boite de dialogue de configuration des plugins, Maxthon essayera d'ouvrir le fichier 'config.html' de votre rΘpertoire des plugins. Et un fichier 'max.src' sera crΘe pour permettre α votre plugin de rΘcupΘrer le security_id, afin d'appeler certaines fonctions de Maxthon. Vous pouvez utiliser les rΘglages suivant pour prΘciser les dimensions de la boite de dialogue.
    <meta name="Dialog-Width" content="110">
    <meta name="Dialog-Height" content="120">

Haut

Comment ajouter ou modifier un protocole ? (+)

Avec Maxthon, le plugin peut Θtablir un nouveau protocole, comme book://, ou modifier un protocole existant, comme ftp://. Lorsque l'utilisateur saisi le protocole dans la barre d'adresse ou clique sur le protocole sur la page Web, Maxthon appelera le plugin.

  1. Objet COM :

    Non supportΘ actuellement...

  2. Fichier Exe :

    Le fichier doit Ωtre appelΘ avec le paramΦtre "-u=url", o∙ l'url est l'adresse que l'utilisateur veut visiter, comme book://www.mysite.com/abc.pdf, ou ftp://www.google.com.

  3. Fichier Script :

    Non supportΘ actuellement...

Haut
Comment crΘer un plugin de type "Bouton" ? (+)

Maxthon supporte des plugins de type "Bouton", qui peuvent Ωtre placΘs dans la barre des "Extensions d'IE". Le plugin est appelΘ lorsque l'utilisateur clique sur le bouton correspondant. Le 'Bouton' du plugin peut Ωtre implΘmentΘ en utilisant la mΘthode suivante.

  1. Objet COM :

    Lorsque l'utilisateur clique sur le bouton, Maxthon appelle l'interface Com IOleCommandTarget et IObjectWithSite en passant le pointeur IWebBrowser2 de la page courrante α la fonction IObjectWithSite::SetSite, puis appelle la fonction IOleCommandTarget::Exec. Ceci est identique α l'implΘmentation des boutons d'IE. Se reporter α MSDN pour plus d'informations.

    Fichier Plugin.ini :

    [General]
    Name=ComButton
    Author=bloodchen
    Version=1.0
    ModuleType=COM
    FileName=ComButton.dll
    CLSID={96E78121-9FF2-466D-B6CD-4038CAC1BB79}
    Comments=Bouton de type Com
    Type=M2Plugin_BUTTON
    HotIcon=hot.ico
    Icon=cold.ico


  2. Fichier Exe :

    Lorsque l'utilisateur cliquera sur le bouton, Maxthon appellera le fichier avec comme paramΦtres l'adresse courante et le handle de la fenΩtre principale de Maxthon. Par exemple, si le fichier est abc.exe, alors Maxthon appellera abc.exe -h=23424 -u=http://www.yahoo.com, o∙ 23424 est le handle de la fenΩtre principale de Maxthon et http://www.yahoo.com est l'URL de la page courante.

    Fichier Plugin.ini :

    [General]
    Name=ExeButton
    Author=BloodChen
    Version=1.0
    ModuleType=EXE
    FileName=abc.exe
    Comments=Bouton de type Exe
    Type=M2Plugin_BUTTON
    Icon=p.ico

  3. Fichier Script :

    Lorsque l'utilisateur cliquera sur le bouton, Maxthon exΘcutera le script sur la page Web en cours.

    Fichier Plugin.ini :
    [General]
    Name=LastModified
    Author=bloodchen
    Version=1.0
    ModuleType=SCRIPT
    FileName=LastModified.htm
    Comments=Voir la date de derniΦre modification de la page en cours
    Type=M2Plugin_BUTTON
    HotIcon=hot.ico
    Icon=cold.ico

Haut

Comment crΘer un plugin de type "Volet latΘral" ? (+)

Maxthon supporte des plugins de type "Volet latΘral". Ce type de plugin se trouvent dans le volet latΘral de Maxthon, en utilisant un fichier Html.

  1. HTML :

    Lorsque l'utilisateur clique sur le bouton, Maxthon charge le fichier Html dans le volet latΘral, qui est indiquΘ dans le fichier Plugin.ini.

    Exemple Plugin.ini:

    [General]
    Name=Calculator++ 1.2
    Author=SiC
    Version=1.2
    ModuleType=SCRIPT
    FileName=calculator.htm
    Comments=Calculatrice programmable scientifique.
    Type=M2Plugin_Sidebar
    HotIcon=cpp.ico
    Icon=cpp.ico

  2. COM :

    Lorsque l'utilisateur clic sur le bouton, Maxthon chargera le contr⌠le COM dans la volet latΘral, qui est dΘfini dans le fichier plugin.ini.

    Exemple Plugin.ini:

    [General]
    Name=AXSidebar sample
    Author=bloodchen
    Version=1.0
    ModuleType=COM
    Comments=Simple contr⌠le ActiveX de volet latΘral
    Type=M2Plugin_SideBar
    FileName=AXSidebar.dll
    CLSID={108C8E56-90AF-408B-873F-8AE3480BE090}
    HotIcon=ax.ico
    Icon=ax.ico

    Le plugin COM peut Ωtre implΘmentΘ de 2 faτons :

    1. Un objet COM identique α l'implΘmentation de IE. Il doit utiliser l'interface IObjectWithSite,
      IDeskBand et optionellement IInputObject. Le plugin de volet latΘral Net Snippet en est un exemple.

    2. Un contr⌠le activex. N'importe quel contr⌠le activex valide peut-Ωtre utilisΘ, fournissant le CLSID correcte. Le contr⌠le activex peut implΘmenter optionellement l'interface IObjectWithSite , α partir de laquelle Maxthon passera l'interface IWebBrowser2 de l'onglet actif. Si le contr⌠le activex n'est pas enregistrΘ dans le systΦme de l'utilisateur et que le nom de fichier n'est pas vide, Maxthon essayera d'enregistrer le fichier et de charger le contr⌠le de nouveau. Le plugin AXSidebar en est un exemple (avec code source).

Haut

Support Θtendu du DHTML (+)

Maxthon a Θtendu le support du DHTML en ajoutant un certains nombre de nouvelles commandes qui peuvent Ωtre appelΘes par le langage de script. Le code HTML ou script peut appeler la fonction par l'objet 'window.external'. La fonction peut Ωtre appelΘe α partir du script dans une page HTML ou un script de plugin.

Notez : Certaines fonctions nΘcessite un security_id comme premier paramΦtre qui n'Θtait pas nΘcessaire dans les anciennes versions de MyIE2. Les plugins qui utilisent cette commande doivent Ωtre modifiΘs pour utiliser le security_id .

Comment rΘcupΘrer le security_id ?
1. Pour les plugins de barre de boutons, vous devez avoir un %max_security_id dans vos fichiers de script, comme 'var security_id=%max_security_id", ainsi vous pourrez utiliser de security_id dans vos scripts.

2. Pour les plugins de barre latΘrale, un fichier nommΘ "max.src" doit Ωtre crΘe dans le rΘpertoire de votre plugin et doit contenir "max_security_id=id". Vous pouvez inclure ce fichier dans votre page html pour rΘcupΘrer l'id.


  1. addFavorite( url , title ) , addFavorite( url )

    Cette fonction demandera α l'utilisateur d'ajouter l''url' dans les favories, en utilisant 'title' comme nom d'url.

    Exemple 1: external.addFavorite( "http://www.google.com" ); DΘmo
    Exemple 2: external.addFavorite( "http://www.google.com","C'est google"); DΘmo

  2. addProxy (name, address, speed, is_web_proxy)

    Cette fonction appellera la boεte de dialogue d'ajout d'un proxy de Maxthon pour ajouter le nom du proxy 'name' α l'adresse 'address', en indiquant comme vitesse initiale 'speed'. Le is_web_proxy indique si le proxy est un proxy web ou un proxy normal.

    Exemple: external.addProxy("Mon proxy","192.168.1.0:8080",1,0); DΘmo

  3. addFilter( address ) , addFilter( address, is_pop_filter )

    Cette fonction appellera la boεte de dialogue d'ajout d'un filtre de Maxthon, en indiquant l'adresse α filtrer 'address'. 'is_pop_filter' indiquant si le type de filtre par dΘfaut est un filtre de popup.

    Exemple 1: external.addFilter("http://www.yahoo.com/ad*"); DΘmo
    Exemple 2: external.addFilter("http://www.yahoo.com/img/*", 0); DΘmo

  4. readFile( security_id, plugin_name, file_name)

    Cette fonction ne peut Ωtre utilisΘe que dans un script de plugin, pour des raisons de sΘcuritΘ. Le 'plugin_name' se rΘfΦre au nom du plugin dΘfini dans plugin.ini et le 'file_name' indique le nom du fichier qui doit Ωtre lu. La fonction retournera contenu du fichier. Si le plugin n'est pas capable de lire ou que le nom du plugin est erronΘ ou non trouvΘ, la fonction se terminera sur une erreur et retournera null.

    Exemple: var text = external.readFile(%max_security_id,"Test plugin","plugin.ini");

  5. writeFile( security_id, plugin_name, file_name, content )

    Cette fonction ne peut Ωtre utilisΘe que dans un script de plugin, pour des raisons de sΘcuritΘ. Le 'plugin_name' se rΘfΦre au nom du plugin dΘfini dans plugin.ini et le 'file_name' indique le nom du fichier qui doit Ωtre Θcrit. Le 'content' est le contenu qui sera Θcrit dans le fichier. Si le plugin n'est pas capable d'Θcrire ou que le nom du plugin et erronΘ ou non trouvΘ, la fonction se terminera sur une erreur et retournera null.
    Notez SVP: Le fichier sera ΘcrasΘ α partir du dΘbut.

    Exemple: external.writeFile(%max_security_id,"Test plugin","setting.ini","username=abc\npass=qwrxcv");

  6. tab_count

    Cette commande returne le nombre total d'onglets sous la forme d'un entier.

    Exemple: var total_tab = external.tab_count ; DΘmo

  7. activate_tab( security_id , index )

    Cette fonction active l'onglet numΘro 'index' de Maxthon.

    Exemple: external.activate_tab(%max_security_id,2)

  8. get_tab( security_id , index )

    Cette fonction retourne la page web de l'onglet index.

    Exemple: external.get_tab(%max_security_id,2)

  9. cur_sel

    Cette fonction retourne le numΘro de l'onglet courant sous la forme d'un entier.

    Exemple: var cur_tab = external.cur_sel; DΘmo

  10. close_tab( security_id , index )

    Cette fonction ferme l'onglet numΘro 'index' de Maxthon.

    Exemple: external.close_tab(%max_security_id,2)

  11. m2_readIni( security_id, plugin_name , file_name , section_name , key , default_value)

    Cette fonction lit la clΘ utilisant la default_value dans le fichier ini spΘcifiΘ par file_name dans le rΘpertoire du plugin.

    Exemple: path = external.m2_readIni(%max_security_id,"testplugin","settings.ini","general","save","0");

  12. m2_writeIni( security_id , plugin_name , file_name , section_name , key , value )

    Cette fonction Θcrit la clΘ avec la valeur dans le fichier ini spΘcifiΘ par file_name.

    Exemple: external.m2_writeIni(%max_security_id,"testplugin","settings.ini","general","save","true");

  13. m2_search_text( security_id )

    Cette propriΘtΘ retourne le texte dans la barre de recherche de Maxthon.

    Exemple: var text = external.m2_search_text(%max_security_id)

  14. m2_run_cmd( security_id , id )

    Cette fonction appelle une commande de Maxthon avec l'ID. L'id de chaque commande sera prΘsent dans le fichier de chaque langue.

    Exemple: external.m2_run_cmd(%max_security_id,32772); //Ceci ouvre une page vierge.

  15. m2_plugin_folder( security_id , plugin_name )

    Cette fonction retourne le rΘpertoire local du plugin.

    Exemple: var folder = external.m2_plugin_folder(%max_security_id,"ViewSource!");
    Ceci retourne par exemple : "C:\Program Files\Maxthon\Plugin\ViewSource!\"

  16. max_actSideBarItem( plugin_name )

    Cette fonction active le plugin de la barre latΘrale du nom de 'plugin_name'.

    Exemple: external.max_actSideBarItem("Calculator++");

  17. max_modelessDialog( security_id , url , option , attr , window )

    Cette fonction ouvre un modelessDialog. C'est la mΩme chose que la fonction window.ShowModelessDialog. Le dernire paramΦtre 'window' est l'objet fenΩtre de la page web.

    Exemple: external.max_modelessDialog(%max_security_id,'example.htm',window,'status:no;help:no;resizable:yes;scroll:yes;',window)

  18. m2_callerName( security_id, plugin_name)

    Cette fonction indique α Maxthon que l'appel est rΘalisΘ α partir du Plugin. C'est habituellement utilisΘ avant un appel window.open pour que maxthon ne tienne pas compte de la fenΩtre popup que le plugin ouvre.

    Exemple: external.m2_callerName(%max_security_id,"ViewSource!")

  19. max_showConfig( security_id, plugin_name)

    Cette fonction affiche la boεte de dialogue de configuration des plugins.

    Exemple: external.max_showConfig(%max_security_id,"ViewSource!")

  20. max_activex(security_id, prog_id)

    Cette fonction crΘe l'ActiveX avec le prog_id.

    Exemple: var XML=external.max_activex(%max_security_id,"Microsoft.XMLDOM")

  21. max_language_id

    Cette propriΘtΘ reprΘsente la langue utilisΘe.
    Vous pouvez visualiser toutes les langues ici

    Exemple: var language=external.max_language_id

Haut

Fonctions callback des plugins de barre latΘrale : (+)

Dans un plugin de barre latΘral, vous pouvez utiliser une fonction de script appelΘe max_callback(status).

  1. Lorsque le plugin est crΘe, l'URL sera filename?maxcmd=init
  2. Lorsque le plugin est activΘ, max_callback('sidebar_activate') sera appelΘe
  3. Lorsque le plugin est dΘsactivΘ, max_callback('sidebar_deactivate') sera appelΘe
  4. Lorsque l'onglet actif est modifiΘ, max_callback('sidebar_tab_change') sera appelΘe
  5. Lorsque le plugin est terminΘ, max_callback('sidebar_unload') sera appelΘe.

Liens utiles :

Haut