我目前正在开发适用于Android / iOS的App,现在我正在让我的用户与Facebook互动,特别是向他们的朋友发送私信。
Facebook为iOS实现了一个SDK:
FBSDKSendButton *button = [[FBSDKSendButton alloc] init];
button.shareContent = content;
[self.view addSubview:button];
对于android:
SendButton sendButton = (SendButton)findViewById(R.id.fb_send_button);
sendButton.setShareContent(shareContent);
sendButton.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
但我不确定我是否可以在NativeScript中使用这些代码片段。 有没有人对facebook发送按钮和NativeScript有任何经验,或者至少可以说明它是否可能。
非常感谢
答案 0 :(得分:0)
在this NativeScript plugin中做了类似的事情。它提供了Facebook登录功能,但我相信它很容易满足您的需求。
答案 1 :(得分:0)
上周我问了一个类似的问题,并且可以使用addSubview调用来这样工作:
var mainView = args.object.getViewById('main-view');
mainView.ios.addSubview(publisher.view);
我的XML看起来像:
<Page loaded="pageLoaded">
<StackLayout id="main-view">
</StackLayout>
</Page>
您需要在XML中创建的视图上使用ID,然后在函数的代码隐藏文件中,使用args.object.getViewById('yourViewID');
创建变量,然后调用viewVariable.ios.addSubview('view-you-want-to-add');
。
就我而言,我的框架publisher
对象就是我传递给.ios.addSubview()
电话的对象。
完整的代码隐藏文件:
var vmModule = require("./main-view-model");
// moving OpenTok out of the plugin and into code base for dev.
// Will move into a plugin after
var OpenTok = {
createSession: function(options) {
var apiKey = 'private';
var sessionID = 'private';
var delegate = this;
// Framework Method
var session = OTSession.alloc().init();
return session.initWithApiKeySessionIdDelegate(apiKey, sessionID, delegate);
},
createPublisher: function() {
// Framework Method
var publisher = OTPublisher.alloc().init();
return publisher;
}
};
function pageLoaded(args) {
var page = args.object;
var mainView = args.object.getViewById('main-view');
var token = "private";
var error = new interop.Reference();
page.bindingContext = vmModule.mainViewModel;
var session = OpenTok.createSession();
// Framework Method
session.connectWithTokenError(token, error);
var publisher = OpenTok.createPublisher();
// Framework Method
publisher.initWithDelegate(publisher);
// Native iOS Method
mainView.ios.addSubview(publisher.view);
var checkConnectionStatus = setInterval(function(){
if ( session.sessionConnectionStatus == 1 ) {
console.log('clear interval');
clearInterval(checkConnectionStatus);
// Framework Method
session.publishError(publisher, null);
}
}, 1000);
}
exports.pageLoaded = pageLoaded;
这是我的问题,如果你仍然陷入困境,可能会提供更多见解:Nativescript addSubview