为基于 Web 的 phonegap 应用添加 facebook 评论框插件
Posted
技术标签:
【中文标题】为基于 Web 的 phonegap 应用添加 facebook 评论框插件【英文标题】:Adding facebook comment box plugin for web based phonegap app 【发布时间】:2015-01-18 21:01:04 【问题描述】:我正在尝试将 facebook 评论框添加到我的基于 Web 的应用程序中,但是当我在手机上安装时它没有显示。是否有一些特殊的插件或方法可以让 facebook 评论插件与 phonegap 和/或 ionic 一起使用?我目前在我的配置中有这个插件:
<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.9.0">
【问题讨论】:
【参考方案1】:到目前为止,我发现的最佳解决方案是从 iframe 内部调用 cmets 框。到目前为止,这种方法的唯一问题是登录和设置 iframe 高度。我仍在研究解决方案
【讨论】:
你能帮忙写代码吗?我如何从 iframe 调用 ionic cordova 应用程序上的 facebook cmets 框?非常感谢您的帮助! 也许他就是这样干的..***.com/questions/13252259/…【参考方案2】:我也设法用 iframe 做到了。 我用https://github.com/davidjbradshaw/iframe-resizer解决了调整大小问题
为了登录,我必须更改本机代码。
ios:MainViewController.m
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
NSURL *url = [request URL];
if (![url isFileURL] && (navigationType == UIWebViewNavigationTypeLinkClicked))
//this is for loading links in external browser
if ([[UIApplication sharedApplication] canOpenURL:url])
[[UIApplication sharedApplication] openURL:url];
return NO;
else if ([[url absoluteString] containsString:@"m.facebook.com"] && [[url absoluteString] containsString:@"login"])
NSString *forceInAppBrowserJS = [NSString stringWithFormat:
@"var loginWindow = cordova.InAppBrowser.open('%@', '_blank', 'location=yes');\n\
loginWindow.addEventListener('exit', function()\n\
window.fbIframe.src = window.fbIframe.src;\n\
);", url]; //reload the iframe after login, you have to assign the iframe in js
[theWebView stringByEvaluatingjavascriptFromString: forceInAppBrowserJS];
return NO;
return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
android:CordovaWebViewClient.java
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
if (!url.contains("file://"))
if (url.contains("m.facebook.com") && url.contains("login"))
String forceInAppBrowserJS = String.format("var loginWindow = cordova.InAppBrowser.open('%s', '_blank', 'location=yes,hardwareback=yes'); loginWindow.addEventListener('exit', function()window.fbIframe.src = window.fbIframe.src;);", url);
view.evaluateJavascript(forceInAppBrowserJS, null);
return true;
if (!url.startsWith("http://") && !url.startsWith("https://"))
url = "http://" + url;
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(browserIntent); //open link in external browser
return true;
return helper.shouldOverrideUrlLoading(view, url);
【讨论】:
当然,你必须为 Cordova 安装 InAppBrowser 插件以上是关于为基于 Web 的 phonegap 应用添加 facebook 评论框插件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Phonegap 的 IBM Worklight 响应式 Web 应用程序
将外部图像路径添加到基于 PhoneGap 的应用程序的外部列表后,外部图像路径仍然不显示
为 Phonegap / Cordova iphone 应用程序设置 CMS
无法在 iPhone 的 PhoneGap 中使用 AJAX(简单 javascript)调用基于 REST 的 Web 服务