Когда он находится на стороне сервера, используйте веб-службы - возможно, RESTful с JSON.
Когда Java-код находится в апплете, вы можете использовать мост JavaScript. Мост между языками программирования Java и JavaScript, известный неофициально как LiveConnect , реализован в плагине Java. Раньше функциональность LiveConnect, зависящая от Mozilla, такая как возможность вызова статических методов Java, создания экземпляров новых объектов Java и ссылок на сторонние пакеты из JavaScript, теперь доступна во всех браузерах.
Ниже приведен пример из документации. Посмотрите на methodReturningString
.
Код Java:
public class MethodInvocation extends Applet {
public void noArgMethod() { ... }
public void someMethod(String arg) { ... }
public void someMethod(int arg) { ... }
public int methodReturningInt() { return 5; }
public String methodReturningString() { return "Hello"; }
public OtherClass methodReturningObject() { return new OtherClass(); }
}
public class OtherClass {
public void anotherMethod();
}
Веб-страница и код JavaScript:
Если у вас есть только одно или два изображения, просто сохраните их в userdefault
, а затем вы можете получить доступ в любом viewController. Сохраняйте image
как data
в userdefault
всякий раз, когда вы хотите использовать просто преобразование данных в изображение и используйте его, см. следующий код для преобразования данных в изображение
let image = UIImage(data: imageData)
Вы можете сделать
class Service {
static let shared = Service()
var image1:UIImage?
var image2:UIImage?
let imageLink = "//////" // or with SDWebImage
}
if let pic = UIImage(data: data!){
Service.shared.image = pic
}
Или использовать SDWebImage и поделиться ссылкой, вы также можете создать глобальную переменную вроде
var image:UIImage?
, но это не рекомендуется поскольку у него нет группировки, позволяющей разработчику знать, что он является локальным / instance / global, то это сбивает с толку, в отличие от синглтона
Просто объявите UIImage глобально в вашем классе и в вашей функции, где вы устанавливаете imageHolder, назначьте загруженное изображение глобальному изображению и используйте его где угодно.
UIImage image;
func retreiveImagesFromFireBase(downloadUrl:String,imageHolder:UIImageView){
if downloadUrl != ""{
let storageRef = Storage.storage().reference(forURL: downloadUrl)
// Download the data, assuming a max size of 1MB (you can change this as necessary)
storageRef.getData(maxSize: 5*1024*1024) { (data, error) in
if error == nil{
if let pic = UIImage(data: data!){
imageHolder.image = pic
image = pic // use it on other views
}
}else{
print(error)
}
}
}
}