Как добавить намерение поделиться с помощью robovm (libgdx)?

Таким образом, для устройств Android существует функция намерения общего доступа по умолчанию, которую вы вызываете, которая будет перечислять все приложения, загруженные на устройство, с помощью которых можно обмениваться контентом. Как бы я сделал это с помощью robovm, вот снимок экрана того, чего я пытаюсь достичь. Кроме того, хочу отметить, что в конечном итоге я хочу сделать снимок экрана их устройства и опубликовать его на любом сайте социальной сети, который выберет пользователь. Любая помощь будет принята с благодарностью: D

введите описание изображения здесь


person Edward Lim    schedule 19.10.2015    source источник


Ответы (1)


Для пользователей iOS:

RoboVM устарел в пользу RoboPods. Итак, RoboVM больше нет, что теперь?

https://github.com/robovm/robovm-robopods/tree/master

Для обмена text с помощью roboVM вы можете установить класс UIAvtivityViewController

NSString textShare = new NSString("This is the text to share");
NSArray texttoshare = new NSArray(textShare);
UIActivityViewController share = new UIActivityViewController(texttoshare,null);
presentViewController(share, true, null);

Чтобы поделиться text, image and app, вы можете сделать следующий код:

NSURL imgUrl = new NSURL(EXTERNAL_IMG_URL);
NSData data = NSData.read(imgUrl); 
UIImage image = new UIImage(data); 
NSString appStoreUrl = new NSString(APP_STORE_URL); 
NSString googleUrl = new NSString(GOOGLE_PLAY_URL); 
NSString text = new NSString(TEXT_TO_SHARE); 
NSArray<NSObject> texttoshare = new NSArray<NSObject>(text, image, appStoreUrl, googleUrl); 
UIActivityViewController share = new UIActivityViewController( 
texttoshare, null); 
if (UIDevice.getCurrentDevice().getUserInterfaceIdiom() == UIUserInterfaceIdiom.Phone) {  

 //iPhone 
iosApplication.getUIViewController().presentViewController( 
 share, true, null);  
} else { 
 //iPad 

 UIPopoverController popover = new UIPopoverController(share);
 UIView view = iosApplication.getUIViewController().getView(); 
 CGRect rect = new CGRect( 
 view.getFrame().getWidth() / 2, 
 view.getFrame().getHeight() / 4, 
 0, 
 0); 
 popover.presentFromRectInView( rect, view, UIPopoverArrowDirection.Any, true); 
 }

Следующий код отправляет анимированное .gif через Mail и Messenger, однако Twitter предоставляет только статическое изображение.

public void shareGif(String path)
{        
    NSURL url = new NSURL(new File(path));

    NSArray<NSObject> imageArray = new NSArray<NSObject>(image);
    UIActivityViewController share = new UIActivityViewController(imageArray,null);
    ((IOSApplication)Gdx.app).getUIViewController().presentViewController(share, true, null);
}

Для универсального общего доступа в iOS с text, link and image код приведен ниже:

@Override
public void share() {
    NSArray<NSObject> items = new NSArray<>(
            new NSString("Hey! Check out this mad search engine I use"),
            new NSURL("https://www.google.com"),
            new UIImage(Gdx.files.external("image.png").file())
    );
    UIActivityViewController uiActivityViewController = new UIActivityViewController(items, null);
    ((IOSApplication) Gdx.app).getUIViewController().presentViewController(uiActivityViewController, true, null);
}

Для пользователей Android: Предоставление доступа к контенту с намерениями

В нем говорится, что RoboVM предназначен только для iOS, так как же мы будем использовать его для Android с помощью LibGDX? roboVM с RoboPods используется для iOS, а сервисы Google Play — для Android. Разные устройства, разный код. Для Android после интеграции Android SDK в вашу среду IDE просто свяжите библиотеку сервисов Google Play с проектом Android.

person SkyWalker    schedule 14.06.2016
comment
Часть iOS все еще действительна в 2019 году. Для Android не требуется наличие Play Services. - person MrStahlfelge; 12.02.2019
comment
@MrStahlfelge. Это работает, но если вы попробуете текст, ссылку и изображение, вы получите другой результат в зависимости от платформы. Это не очень хорошо.. С Instagram › Просто изображение без текста. С электронной почтой › Электронная почта + ссылка + текст. Это хорошо. с WhatsApp › Текст + UR. С Twitter › Изображение + текст. С Facebook › Просто ссылка - person Julien; 10.06.2020
comment
Любая идея о том, как установить тему в электронной почте? - person Will Calderwood; 15.07.2020