Android 钛-Facebook模块没有';t使用本机登录
我正在尝试将facebook登录到我试图用Tianium开发的应用程序中, 当我点击“连接”按钮时,它会显示一个如下对话框: 它看起来像一个facebook登录的web应用程序,而不是本机应有的样子。我希望它是这样的:Android 钛-Facebook模块没有';t使用本机登录,android,titanium,titanium-mobile,facebook-login,titanium-alloy,Android,Titanium,Titanium Mobile,Facebook Login,Titanium Alloy,我正在尝试将facebook登录到我试图用Tianium开发的应用程序中, 当我点击“连接”按钮时,它会显示一个如下对话框: 它看起来像一个facebook登录的web应用程序,而不是本机应有的样子。我希望它是这样的: 那么,如何让本模块使用本机登录对话框而不是此web样式对话框?要使用iOS本机facebook登录,您必须: 使用新的facebook模块require('facebook'),旧模块已弃用 设置forceDialogAuth=false 确保在facebook应用程序中也设
那么,如何让本模块使用本机登录对话框而不是此web样式对话框?要使用iOS本机facebook登录,您必须:
require('facebook')
,旧模块已弃用forceDialogAuth=false
李>
- 用户尚未在设备上激活facebook登录/facebok应用程序
- 用户在本机facebook登录之前拥有iOS版本
- 您可以在模拟器中运行应用程序
这是我如何使用本机iOS登录的,一步一步:
1。创建facebook应用程序
要使用本机iOS facebook登录,您必须在创建facebook应用程序。将你的应用程序id复制到文本编辑器,我们稍后将需要它。
2。设置你的facebook应用程序
在“基础”部分启用“本机iOS应用程序”集成。
(1) 输入应用程序使用的捆绑包id,与您在tiapp.xml中设置的id相同
(2) 如果您希望Facebook从书签等启动您的应用程序,请激活Facebook登录。
(3) 可选:用于跨多个应用程序共享您的facebook id。我们也将在Info.plist中使用此url方案。
3。设置tiapp.xml
转到Titanium Studio并打开tiapp.xml(通常是应用程序目录中的最后一个文件)。左下角有两个选项卡。我们首先需要概述。确保您的应用程序Id与您在facebook应用程序中输入的Id匹配。单击模块的+并添加Appcelerators自己的facebook模块,默认情况下安装该模块。它应该出现在下面的列表中。
仍然在tiapp.xml中,单击tiapp.xml选项卡,添加以下内容:
XXXXXXXX
,显然,Xs是您的facebook应用程序id。
4。复制并编辑Info.plist文件
在Finder中,导航到应用程序根文件夹。从这里开始,进入build>iphone。你应该在这里看到Info.plist。将其复制并粘贴到应用程序的根文件夹。
使用您选择的文本编辑器打开它。将FacebookAppID和FacebookDisplayName添加到文件中,并用自己的占位符值替换占位符值。这可能没有必要,但为了安全起见,我使用了它,而且它很有效;)查找CbundleUrlTypes并将其编辑为如下所示,测试是您应用程序的URL方案,您以前在facebook应用程序中设置过它。通过输入
test://
,您的应用程序也可以从Safari打开。请注意CbundleurlSchemes数组中的fb,与之前的所有其他字段不同,它必须在您的facebook应用程序id前面加前缀
<key>FacebookAppID</key>
<string>XXXXXXXXXXXXX</string>
<key>FacebookDisplayName</key>
<string>Your facebook app name</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>test</string>
<key>CFBundleURLSchemes</key>
<array>
<string>test</string>
<string>fbXXXXXXXXXX</string>
</array>
</dict>
</array>
请提供您现有的代码,有时一个问题可以通过更改一行来解决,如果我们只知道…谢谢,真的帮助了我:)@mwfire Clear one great
// The module we have added to our project via tiapp.xml before
var facebookModule = require('facebook');
// We can read the facebook app id from tiapp.xml
var FACEBOOK_APP_ID = Ti.App.Properties.getString('ti.facebook.appid');
// Set the app id
facebookModule.appid = FACEBOOK_APP_ID;
// Do not force a facebook html popover but use the native dialog if possible
facebookModule.forceDialogAuth = false;
// Add an event listener to the facebook login event
facebookModule.addEventListener('login', facebookLoginHandler);
// Also add an event listener to the logout event
facebookModule.addEventListener('logout', facebookLogoutHandler);
// The event listener of our login button
loginButton.addEventListener('click', function() {
facebookModule.authorize();
});
// The event listener of our logout button
logoutButton.addEventListener('click', function() {
facebookModule.logout();
});
// The facebook login event handler
function facebookLoginHandler(e) {
if (e.success) {
// Success!
} else if (e.error) {
// Error!
} else if (e.cancelled) {
// cancelled by user
}
}
// The facebook logout handler
function facebookLogoutHandler(e) {
if (e.success) {
// Success, clear the facebook browser cookies so someone else
// can login later, if the browser fallback is used
var client = Titanium.Network.createHTTPClient();
client.clearCookies('https://login.facebook.com');
} else if (e.error) {
// Error!
}
}