Estoy tratando de crear una herramienta que abra un archivo .html, sin embargo, necesito ayuda con el código que abrirá dicho archivo .html. Tengo este código a continuación...
help_file = Sketchup.find_support_files("html", "Plugins") if help_file # Print out the help_file full path UI.messagebox(help_file) # Open the help_file in a web browser UI.openURL("file://" + help_file) else UI.messagebox("Failure") endEl resultado de este fragmento de código se muestra en la siguiente captura de pantalla.
https://i.stack.imgur.com/ixLIT.png
Eso es lo que esperaba. Tampoco se abrió .html en Chrome porque hay dos archivos .html. Así que ahora doy un paso más y trato de especificar qué archivo .html me gustaría abrir. Me gustaría abrir 'basic.html' (hasta ahora es un archivo .html en blanco) y cambio mi código en consecuencia (la primera línea es específica).
help_file = Sketchup.find_support_files("basic.html", "Plugins") if help_file # Print out the help_file full path UI.messagebox(help_file) # Open the help_file in a web browser UI.openURL("file://" + help_file) else UI.messagebox("Failure") endDesafortunadamente, no obtuve el resultado que esperaba. Esto es con lo que terminé.
https://i.stack.imgur.com/4xyQT.png
basic.html tampoco se abrió en Chrome, lo cual fue un fastidio.
A continuación se muestra cómo se ven mis archivos en la carpeta Complementos, en caso de que quieras verlo.
https://i.stack.imgur.com/OW7xM.png
¿Cuál es el problema al que me enfrento?
Cómo probar el código a continuación:
Plugins or Extension Menu -> Open basic.html inside the plugins folderPosible solución #1
module DevName module PluginName class Main def activate @dlg = UI::HtmlDialog.new(html_properties_activate) plugins_folder = "file:///#{Sketchup.find_support_file('Plugins').gsub(/ /, '%20')}" #/ html_file = File.join(plugins_folder, 'basic.html') @dlg.set_url(html_file) @dlg.show @dlg.center end def html_properties_activate { dialog_title: 'Dialog Example', preferences_key: 'com.sample.plugin', scrollable: true, resizable: true, width: 420, height: 320 } end end unless defined?(@loaded) UI.menu('Plugins').add_item('Open basic.html inside the plugins folder') do Sketchup.active_model.select_tool(DevName::PluginName::Main.new) end @loaded = true end end endPosible Solución #2 (Mejor Solución)
Prefiero encontrar la ubicación de 'basic.html' usando la ruta relativa de su script '.rb' y no usando la ruta de la carpeta 'Complementos'.
Además, al abrir un archivo HTML local, es mejor usar .set_file en lugar de .set_url .
module DevName module PluginName2 class Main def activate @dlg = UI::HtmlDialog.new(html_properties_activate) path = File.dirname(__FILE__) html_file = File.join(path, '/basic.html') @dlg.set_file(html_file) @dlg.show @dlg.center end def html_properties_activate { dialog_title: 'Dialog Example', preferences_key: 'com.sample.plugin', scrollable: true, resizable: true, width: 420, height: 320 } end end unless defined?(@loaded) UI.menu('Plugins').add_item('Open basic.html inside plugins folder Solution #2') do Sketchup.active_model.select_tool(DevName::PluginName2::Main.new) end @loaded = true end end end