Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
package de.unicate.playground;
public interface IPlugin {
public String getName();
}
package de.unicate.playground;
import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
public class Playground {
private IPlugin plugin;
private Playground() {
plugin = null;
}
public static void main(String[] args) throws Exception{
Playground main = new Playground();
main.init();
main.start();
}
private void start() {
if(null != plugin) {
System.out.println(plugin.getName());
} else {
System.err.println("Pluginerror");
}
}
private void init() throws Exception {
URL pluginFile = null;
File file = new File("TestPlugin.jar");
if(!file.exists())
return;
pluginFile = new URL("file", "localhost", file.getAbsolutePath());
URL[] urls = {pluginFile};
URLClassLoader loader = new URLClassLoader(urls,Thread.currentThread().getContextClassLoader());
plugin = (IPlugin)loader.loadClass("de.unicate.playground.plugin.PlaygroundPlugin").newInstance();
}
}
package de.unicate.playground.plugin;
import de.unicate.playground.IPlugin;
public class PlaygroundPlugin implements IPlugin{
public PlaygroundPlugin() {
}
@Override
public String getName() {
return "Ich bin ein Plugin";
}
}
// RCBModule ist das Interface, das ich für ladbare Module benutze
RCBModule module = (RCBModule)classLoader.loadClass(modulePackagePath).newInstance();
public Plugin(File pluginFile)
{
super();
try
{
//TODO Hardcodet, read the Classes from File in Jar
URLClassLoader classLoader = new URLClassLoader(new URL[] {
pluginFile.toURI().toURL()
});
Class<?> loadetClass = classLoader.loadClass("core.JobExecuter");
abstractJobExecuter = (AbstractJobExecuter) loadetClass.newInstance();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
}