Ios 需要fb的工作示例:类似于UIWebView中的edge.create/remove事件触发
简言之:edge.create在UIWebView中的嵌入式HTML中停止启动(我有一段时间没有更改任何代码)-有什么想法吗Ios 需要fb的工作示例:类似于UIWebView中的edge.create/remove事件触发,ios,facebook,facebook-like,facebook-javascript-sdk,Ios,Facebook,Facebook Like,Facebook Javascript Sdk,简言之:edge.create在UIWebView中的嵌入式HTML中停止启动(我有一段时间没有更改任何代码)-有什么想法吗 我有一个iOS应用程序,它有UIWebView和类似Facebook的按钮。 用户在出现此对话框之前登录Facebook,因此不存在登录逻辑 我可以单击“喜欢/不喜欢”——它工作得很好——但它曾经关闭对话框,几天前它就坏了。关闭对话框是通过订阅edge.create/edge.remove事件实现的 这是我的HTML页面: <html> <h
我有一个iOS应用程序,它有UIWebView和类似Facebook的按钮。 用户在出现此对话框之前登录Facebook,因此不存在登录逻辑 我可以单击“喜欢/不喜欢”——它工作得很好——但它曾经关闭对话框,几天前它就坏了。关闭对话框是通过订阅edge.create/edge.remove事件实现的 这是我的HTML页面:
<html>
<head>
<style type='text/css'>
* { -webkit-touch-callout: none; -webkit-user-select: none; }
body { margin:0px; }
.fb_edge_comment_widget { display: none !important; }
</style>
</head>
<body>
<div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js#xfbml=1'></script>
<script>
function forwardEvent(name) {
var iframe = document.createElement('iframe');
iframe.setAttribute('src', 'event:' + name);
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
};
function beginForwardingEvent(name) {
FB.Event.subscribe(name, function(r) { forwardEvent(name); });
};
function beginForwardingEvents(names) {
for (var i = 0; i < names.length; i++) {
beginForwardingEvent(names[i]);
}
};
beginForwardingEvents(['edge.create', 'edge.remove', 'xfbml.render']);
</script>
<fb:like href='%@'
send='false'
layout='%@'
width='%.0f'
show_faces='%@'
action='%@'
colorscheme='%@'
font='%@'
></fb:like>
</body>
</html>
所以再一次-edge.create停止启动(我有一段时间没有更改代码中的任何内容)-有什么想法吗?我怎样才能找回它
多谢各位
更新:
虽然存在一个问题,但我仍然想理解为什么它在站点上可以工作,但在iOS UIWebView中却不能工作。iOS对话框是否需要调整?有解决办法吗?启动悬赏,希望得到答案。似乎edge.create事件不会在本地HTML文件中触发。无论这是偶然还是有意,我都不确定,但我做了一些事情,并成功实现了这一点:
action='%@'
现在显式地是action='like'
load
方法中删除所有内容,并将其替换为以下行:
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.yourhost.com/FacebookLikeView.html"]]];
webView:shouldStartLoadWithRequest:navigationType
方法中的行:
if ([request.URL.scheme isEqualToString:@"file"])
return YES;
到
这并不是你所希望的答案,但我希望这能给你一些线索,至少有助于让它在这段时间内发挥作用。是的!就是这样,很抱歉回复太晚了。这些事件将仅使用远程HTML文件触发。
if ([request.URL.scheme isEqualToString:@"file"])
return YES;
if ([request.URL.host hasSuffix:@"yourhost.com"])
return YES;