Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gluon Glion移动共享按钮的实现_Gluon_Gluon Mobile - Fatal编程技术网

Gluon Glion移动共享按钮的实现

Gluon Glion移动共享按钮的实现,gluon,gluon-mobile,Gluon,Gluon Mobile,Gluon Mobile对实现共享按钮有何指导?我的目标是能够共享一个字符串,其中包含指向手机上不同应用程序的链接目前,我只需要在iOS实施中使用它。我找到了一种在Objective-C中实现这一点的简单方法: - (IBAction)shareButton:(UIBarButtonItem *)sender { NSString *textToShare = @"Look at this awesome website for aspiring iOS Developers!";

Gluon Mobile对实现共享按钮有何指导?我的目标是能够共享一个字符串,其中包含指向手机上不同应用程序的链接目前,我只需要在iOS实施中使用它。我找到了一种在Objective-C中实现这一点的简单方法:

- (IBAction)shareButton:(UIBarButtonItem *)sender
{
    NSString *textToShare = @"Look at this awesome website for aspiring iOS Developers!";
    NSURL *myWebsite = [NSURL URLWithString:@"http://www.codingexplorer.com/"];

    NSArray *objectsToShare = @[textToShare, myWebsite];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

    NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                   UIActivityTypePrint,
                                   UIActivityTypeAssignToContact,
                                   UIActivityTypeSaveToCameraRoll,
                                   UIActivityTypeAddToReadingList,
                                   UIActivityTypePostToFlickr,
                                   UIActivityTypePostToVimeo];

    activityVC.excludedActivityTypes = excludeActivities;

    [self presentViewController:activityVC animated:YES completion:nil];
}
看看Gluon网站上的应用程序示例,似乎我可以在需要的地方使用上面的代码片段作为本机iOS代码。我是否必须更新ios构建梯度以考虑上面第一个链接中提到的UIActivity类

更新*

基于这个问题上的帮助,我已经能够让它工作了

但是,在尝试安装本机库时,我遇到了这个错误,这是可以理解的,因为
self
在代码范围内是未知的。我怎样才能做到这一点?实例化popover或对话框并将
活动VC
传递给它


/Users/ashishsharma/NetBeansProjects/konfamdbranch/src/ios/n‌​ative/Share.m:25:6:错误:使用未声明的标识符“self”[self-presentViewController:activityVC-animated:YES-completion:nil]

因此,我能够通过互联网上的示例(如上所示)以及条形码扫描服务的现有代码来解决这个问题。我在使用上述代码时遇到的问题是找不到当前视图控制器。但是,通过查看的位桶源代码,我能够使用以下代码获得根视图:

if(![[UIApplication sharedApplication] keyWindow])
{
    NSLog(@"key window was nil");
    return;
}

// get the root view controller
UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
if(!rootViewController)
{
    NSLog(@"rootViewController was nil");
    return;
}
然后在我提出的问题的代码片段中,将
self
替换为
rootViewController

[rootViewController presentViewController:activityVC animated:YES completion:nil];
这将导致修改后的代码段:

#import <UIKit/UIKit.h>

#include "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h"

JNIEXPORT void JNICALL     Java_com_gluonhq_charm_down_plugins_ios_IOSShareService_shareMessage
(JNIEnv *env, jclass jClass, jstring jMessage) {

    if(![[UIApplication sharedApplication] keyWindow])
    {
        NSLog(@"key window was nil");
        return;
    }

    // get the root view controller
    UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
    if(!rootViewController)
    {
        NSLog(@"rootViewController was nil");
        return;
    }

    NSString *textToShare = @"Check out this site!";
    NSURL *myWebsite = [NSURL URLWithString:@"http://www.google.com/"];

    NSArray *objectsToShare = @[textToShare, myWebsite];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

    NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                   UIActivityTypePrint,
                                   UIActivityTypeAssignToContact,
                                   UIActivityTypeSaveToCameraRoll,
                                   UIActivityTypeAddToReadingList,
                                   UIActivityTypePostToFlickr,
                                   UIActivityTypePostToVimeo];

    activityVC.excludedActivityTypes = excludeActivities;

   [rootViewController presentViewController:activityVC animated:YES completion:nil];

}
#导入
#包括“/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/sdk/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h”
JNIEXPORT void JNICALL Java\u com\u gluonhq\u charm\u down\u插件\u ios\u IOSShareService\u shareMessage
(JNIEnv*env、jclass、jclass、jstringjmessage){
如果(![[UIApplication sharedApplication]keyWindow])
{
NSLog(@“键窗口为零”);
返回;
}
//获取根视图控制器
UIViewController*rootViewController=[[[UIApplication sharedApplication]keyWindow]rootViewController];
如果(!rootViewController)
{
NSLog(@“rootViewController为零”);
返回;
}
NSString*textToShare=@“查看此站点!”;
NSURL*myWebsite=[NSURL URLWithString:@”http://www.google.com/"];
NSArray*objectsToShare=@[textToShare,myWebsite];
UIActivityViewController*activityVC=[[UIActivityViewController alloc]initWithActivityItems:objectsToShare应用程序活动:nil];
NSArray*excludeActivities=@[UIActivityTypeAirDrop,
UIActivityTypePrint,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToradinglist,
UIActivityTypePostToflicker,
UIActivityTypePostToVimeo];
activityVC.excludedActivityTypes=excludeActivities;
[rootViewController presentViewController:activityVC动画:是完成:无];
}
注意:我按照Gonactive应用程序正确生成了objective-c/ios文件。

这导致了功能共享实现的最小化,只是因为我没有在IPhone模拟器上安装Facebook。