在我的应用程序中,我有一个UIWebview加载linkedin auth页面登录.当用户登录时,cookie会保存到应用程序中.
我的应用程序有一个与linkedin登录无关的注销按钮.因此,当用户点击此按钮时,他会从应用程序中注销.我希望这个注销将从应用程序中清除他的linkedin cookie,以便用户完全注销.
我必须在文章UITableView下面显示一篇网络文章.
我找到的唯一选项是UIWebView在tableView标题中显示文章.
为了做到这一点,我必须获得webView内容的高度,我必须禁用webView的滚动.
我发现了两种禁用滚动的解决方案:
for (id subview in webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).scrollEnabled=NO;
Run Code Online (Sandbox Code Playgroud)
或者在JavaScript中:
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
我听说Apple禁止第一个解决方案,但我没有任何证据.使用此解决方案会拒绝我的申请吗?如果是这样,我可以使用第二种解决方案而不被拒绝吗?
在我的应用程序中,我正在从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能?
func webViewDidStartLoad(webView: UIWebView){}
func webViewDidFinishLoad(webView: UIWebView){}
Run Code Online (Sandbox Code Playgroud)
和
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
print("webview asking for permission to start loading")
if navigationType == .LinkActivated && !(request.URL?.absoluteString.hasPrefix("http://www.myWebSite.com/exemlpe"))!{
UIApplication.sharedApplication().openURL(request.URL!)
print(request.URL?.absoluteString)
return false
}
print(request.URL?.absoluteString)
lastUrl = (request.URL?.absoluteString)!
return true
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("webview did fail load with error: \(error)")
let testHTML = NSBundle.mainBundle().pathForResource("back-error-bottom", ofType: "jpg")
let baseUrl = NSURL(fileURLWithPath: testHTML!)
let htmlString:String! = "myErrorinHTML"
self.webView.loadHTMLString(htmlString, baseURL: baseUrl)
}
Run Code Online (Sandbox Code Playgroud) 使用UIWebView编写iPhone/iPad应用程序时,控制台不可见. 这个优秀的答案显示了如何捕获错误,但我也想使用console.log().
我在iOS应用程序中有Web视图,需要对身份验证cookie进行适当的身份验证.我正在寻找一种在iOS应用程序的webview中设置cookie的方法,而不必发出设置cookie的出站请求,因为我已经在客户端上有auth信息.
这篇文章向我们展示了UIWebView cookie的存储位置.
现在我正在加载一个隐藏的Web视图来发出一个出站请求,但是我不想做一个外部请求来设置一个简单的cookie.
这个让我今天早上疯狂.我想将一些本地html加载到Web视图中:
class PrivacyController: UIViewController {
@IBOutlet weak var webView:UIWebView!
override func viewDidLoad() {
let url = NSURL(fileURLWithPath: "privacy.html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
}
Run Code Online (Sandbox Code Playgroud)
html文件位于我项目的根文件夹中,但位于组内.webview对我来说是空白的.任何想法都错了吗?我在xcode 6.1上并在我的iphone 6上运行这个例子.
我正在使用UIWebView XCode版本8.3.当我启动应用程序时,我的控制台继续向我显示此错误,但我不明白这意味着什么.在我UIViewController的没有代码,所以我不明白为什么XCode继续向我显示这个错误.
我只有一个在我的地方webview viewcontroller通过Storyboard.
这是错误: -
2017-04-07 23:54:50.081592 + 0200 Conquers [1647:697735] libMobileGestalt MobileGestaltSupport.m:153:piid 1647(Conquers)没有为frZQaeyWLUvLjeuEK43hmg提供沙盒访问权限而且未获得相应的授权
2017-04-07 23:54:50.081651 + 0200 Conquers [1647:697735] libMobileGestalt MobileGestalt.c:550:无法访问InverseDeviceID(请参阅参考资料)
我有业务需要能够为嵌入式UIWebView自定义UserAgent.(例如,如果用户使用的是应用程序的一个版本而不是另一个版本,我希望服务器以不同的方式做出响应.)
是否可以在现有的UIWebView控件中自定义UserAgent,例如,对于Windows应用程序中的嵌入式IE浏览器?
我正在尝试创建一个UITableView可变高度行,如本问题的答案中所述
我的问题是每个单元格包含一个UIWebView具有不同(静态加载)的内容我无法弄清楚如何根据内容计算合适的高度.有没有办法做到这一点?我尝试过这样的事情:
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
WebViewCell *cell = (WebViewCell*)[self tableView:tableView cellForRowAtIndexPath:indexPath];
[cell setNeedsLayout];
[cell layoutIfNeeded];
return cell.bounds.size.height;
}
Run Code Online (Sandbox Code Playgroud)
细胞本身是从笔尖加载的,笔尖只是一个UITableViewCell含有a 的笔尖UIWebView.(如果细胞只是将自己调整到html内容的最大值,那也没关系,尽管可变高度会更好).
当您将应用程序提交到Apple应用程序商店时,会有一个名为"评级"的部分,您应该根据图表对内容进行评级,并确定内容的显示频率.
有一个名为"Unrestricted web access"的选项,在Internet和iTunes Connect开发人员指南中没有关于此的更多详细信息.你到处都可以找到:
如果您的应用允许用户浏览和查看网页(例如使用嵌入式浏览器),请选择"是".
这是什么意思?这是否意味着您的应用可以在嵌入式或Safari浏览器中打开链接?或者这是否意味着您的应用程序具有浏览器,用户可以在其中输入URL并在网络中无限制地浏览?因为对这个问题说"是"会让你的应用程序超过17岁!

如果这意味着从您的应用程序(Safari或嵌入式)打开链接,那么具有嵌入式浏览器功能的其他应用程序如何获得4+评级(如Twitter和Facebook)?正如在屏幕截图中可以看到的那样,没有办法选择这个并且不被评为17+

更新:我的应用程序已通过嵌入式WebView(TOWebViewController)批准,答案为"否"(4+).正如答案所提到的,任何让用户通过互联网浏览的方式,例如动态地址栏,这意味着它应该是"是"(17+),因为无法在WebView上进行家长控制.
更新2:自iOS 9发布以来,Apple推出了SFSafariViewController,这是一种在互联网上打开任何URL的方式.此功能还有一个地址栏,但只读.因此,如果没有家长控制,用户就无法上网.它还继承了Safari中的内容阻止(广告,显式内容等).我非常积极地使用iOS 9或更高版本的SFSafariViewController你仍然可以选择4+,因为家长控制的设备无论如何也无法打开任何URL.(如果我错了,请告诉我)
更新3:Twitter现在是17岁以上,基于以下几点:
您必须年满17岁才能下载此应用程序.
罕见/温和的亵渎或粗暴的幽默
频繁/激烈的成熟/暗示主题
罕见/轻度的性内容和裸露
更新4:可以在您的应用程序内使用Twitter内容,而无需继承其评级(17+).我的应用程序正在显示推文,但由于用户是经过验证和信任的公众人物,我可以降到12岁以上:
罕见/轻度的性内容和裸露
罕见/温和的亵渎或粗暴的幽默
罕见/温和的成熟/暗示主题
itunesconnect uiwebview appstore-approval ios sfsafariviewcontroller
ios ×10
uiwebview ×10
iphone ×3
cocoa-touch ×2
objective-c ×2
swift ×2
javascript ×1
scroll ×1
uitableview ×1
wkwebview ×1
xcode ×1
xcode8 ×1