这个问题是关于打印WKWebView的所有内容(包括屏幕外内容).目前(仍然是iOS 10.2或OSX 10.12)没有工作解决方案,并且Stackoverflow上没有任何假设的解决方案.如果您已经验证了可以打印屏幕内容,那么只在这里提供答案,如果您这样做,则提供工作示例代码.
我正在尝试在OSX 10.10或更高版本上打印WKWebView或WebView的所有内容(当前在10.11.2上运行).例如,一个宽的html表,其中列不在视图范围内并且在右边.早期版本的OSX会自动分页并正确打印所有html.
我已尝试使用Stackoverflow和其他地方提供的解决方案.所有人基本上都说同样的东西是打印出来的documentView那样:
[[NSPrintOperation printOperationWithView:_webView.mainFrame.frameView.documentView printInfo:pInfo] runOperation];
Run Code Online (Sandbox Code Playgroud)
这在10.10中停止了WKWebView或WebView的工作.如果你这样做:
[[NSPrintOperation printOperationWithView:_wkWebView printInfo:pInfo] runOperation];
Run Code Online (Sandbox Code Playgroud)
你得到分页,但打印输出包括滚动条WebView,另一个WKWebView给你空白页.
我在Apple文档中找不到关于在OSX上打印WKWebView的任何内容.我也找不到任何OSX特定的答案,而不是iOS.
有没有人知道如何在OSX上打印这些?
更新:这是WebView [雷达:23159060](仍然打开2/2018)中的一个错误,WKWebView甚至似乎无法解决OSX上的打印问题.在网上检查了这个类的开源之后,我看到所有与打印有关的类都在一个只支持平台的条件编译块中:iOS.
UPDATE Part Deux:令人惊讶的是,这个荒谬的bug存在于这个类的所有实现中,包括iOS上的那些!尽管文档声明在支持iOS 8或更高版本的应用程序中使用此(并且只有此类),但我发现这仍然没有在这个较晚的日期得到解决,这一点很荒谬.现在,在iOS或OSX上打印WebView的所有屏幕和屏幕外内容是不可能的.Apple失败了.是时候搞定了!我们都知道史蒂夫会对此说些什么......
注意:另外,我认为这个问题的根本原因还在于无法将WKWebView的所有内容保存为图像.曾经有一些技术可以与UIWebView一起使用,以将WebView的整个屏幕内容和屏幕外内容保存到图像中.我还没有找到一个有效的解决方案.
我在客户端网站上使用Google reCaptcha进行验证.今天我收到了他们的投诉/变更请求,关于reCaptcha的多个图像选择(选择2啤酒,葡萄酒,蛋糕等)验证.我的客户认为,由于客户群的社会文化地位,让客户选择酒精饮料是不合适的.
长话短说; 有没有办法定制谷歌reCaptcha只显示基于数字/字母的验证时"我不是机器人"选项失败.
我意识到这是一个延伸,我不能提供太多的信息来帮助,但我伸手去拿任何东西.我的应用程序已经持续发展3年,从未见过这样的事情.我最近向Apple发布了一个小点发布版本,现在两次因为所有设备上的Crashing on Launch而被拒绝了吗?
崩溃报告指向静态库中的一些代码,但关键行没有得到符号化.试过Atos没有运气.
关键是我有7个设备,我已经在我能想到的每种模式下测试了应用程序,特别是没有连接到任何东西:Wifi-OFF,AirplaneMode-ON,位置服务-OFF.我永远不能模拟他们声称看到的东西,这是每次发布时App崩溃?!
我在AAPL开发论坛中发现了一个听起来相似的报告,但他从来没有得到任何解释.他提交了一个带有大量登录信息的应用程序,并要求他们发送日志.他们得到了那个版本并且......在几小时内就批准了.
有人有主意吗.我需要发布这个版本.
注意:已解决
结果证明这不是一个薄弱的环节问题.我们只是在使用Brad建议的归档版本的Ad Hoc分发运行应用程序时看到了崩溃...所以这很有帮助.
然而,分辨率结果是我在这里列出的一些编译器标志:https:
//stackoverflow.com/a/10302012/754494
我们有一个使用静态Lib构建的应用程序,我们也正在构建用于分发.App和Lib在Xcode调试器中运行正常,或者在Xcode调试会话中加载到设备上.一旦我们在设备上放置Ad Hoc Archive构建,App就会崩溃.控制台日志语句表明它在Lib代码中崩溃,但崩溃报告没有象征Lib代码.
在控制台上看到2个可能有用的例外,但到目前为止还没有在网上做任何事情,这对此有很大帮助:
Application 'x' exited abnormally with signal 12: Bad system call: 12 (mostly)
Application 'x' exited abnormally with signal 12: Bad system call: 11 (rarely)
Run Code Online (Sandbox Code Playgroud)
我们在其他地方看到了带有Recursion的静态库的问题.但是我们的Lib没有任何递归.
难倒,需要更多的想法.
我正在尝试使用jQuery $ .get从网站获取一些数据.我需要设置2个相同类型的参数:
..&q=Some Text&q=Some other text
Run Code Online (Sandbox Code Playgroud)
jQuery似乎用第二个覆盖q的第一个实例,只发送1.任何解决方法?
这是我试图使用的代码:
var params = {
"otherParam":"x",
"q":text,
"q":title
};
$.get(url, params, mySuccessFunction);
Run Code Online (Sandbox Code Playgroud) 我发现了如何以编程方式在Cocoa中创建一个窗口,但无法弄清楚如何对事件做出反应.该窗口不响应退出请求或按钮单击.
我尝试添加以下控制器并使用setDelegate/setTarget而没有运气:
@interface AppController : NSObject {
}
- (IBAction)doSomething:(id)sender;
@end
@implementation AppController
- (IBAction)doSomething:(id)sender;
{
printf("Button clicked!\n");
}
@end
int main(int argc, char **args){
NSRect frame = NSMakeRect(0, 0, 200, 200);
AppController *controller = [[AppController alloc] init];
> [[NSApplication sharedApplication] setDelegate:controller];
NSWindow* window = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[window setBackgroundColor:[NSColor blueColor]];
NSButton *button = [ [ NSButton alloc ] initWithFrame: NSMakeRect( 30.0, 20.0, 80.0, 50.0 ) ];
[ button setBezelStyle:NSRoundedBezelStyle];
[ button setTitle: @"Click" ];
> [ …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,将网站的一部分拉入UIWebViews.这些页面使用本地存储来保持状态,如最后查看的内容和各种设置等.
我看到UIWebViews本地存储正在创建(通过Web Inspector,设备和应用程序连接到调试机器),但在应用程序关闭后清除.相关页面在标准浏览器甚至Mobile Safari中的主站点上正常工作,但在UIWebViews中却没有?
我一直在挖掘并看到一些关于iOS6本地存储缓存更改的讨论,但是我没有清楚地意识到这是否可行,如果是,如何启用它?
在我们必须切换到使用cookie或在服务器端做某事之前,那里的任何人都有明确的答案吗?
谢谢.
我在我的网站上为我的iPhone应用程序提供了"帮助文档",用户可以在我的应用程序中查看UIWebView.它表现出一些奇怪的行为.下面的代码完全适用于Desktop Safari和Firefox,但不适用于移动Safari.您可以在此处查看页面:我的支持页面
通过网络上的一些技术,帮助菜单位置:绝对和"粘滞"到顶部.代码使用了我可以找到的所有技术来启动jQuery,例如空的onclick ="",cursor:元素上的指针.它是第一次工作,但不会乱用用户触摸的NEXT东西,除非你手动滚动页面一点.
Stack上还有其他一些类似的问题,但这些建议都不适合我.有什么想法吗.这是我的jQuery代码.
$(".help-menu-list-item").on( "click", function(e) {
$(".help-menu td").removeClass("selected");
$(this).addClass("selected");
$("html, body").animate(
{scrollTop: $(".help-item-anchor"+"."+$(this).attr('id')).offset().top}, 'slow'
);
});
Run Code Online (Sandbox Code Playgroud)
注意:我不认为这是scrollTop的问题.它认为这是获取点击事件的问题.如果我将jquery alert()添加到上面的jquery块,它不会触发,除非页面首先手动滚动一点.所以...这是一个点击事件触发问题...但我已经尝试了很多技巧来点击事件.无法解决为什么他们会在第一次开火但是直到手动滚动之后再次开火?
我删除了所有基于jQuery的粘性菜单,并使用iOS 5支持:position:absolute
以及:-webkit-overflow-scrolling:touch;
...它产生了更简单的代码,用于获取位于顶部的固定菜单,但是STILL之上的jQuery也有同样的问题....我得到了第一个单击事件,但不是那些在它滚动到某个位置之后,除非用户手动滚动页面.
所以......这是jQuery还是iOS?
我有一个十进制字段的应用程序,如:
/**
* @var decimal $amount
*
* @ORM\Column(name="amount", type="decimal", scale="2")
*/
private $amount;
Run Code Online (Sandbox Code Playgroud)
我希望表单接受格式为"3,4"或"3.4"的数字.
如果我输入"3.4"应用程序保存在数据库"3.4"中,如果我输入"3,4",应用程序将保存在数据库"34"中(是的,没有逗号且没有显示验证错误!).
(这是一个已知的symfony bug:https://github.com/symfony/symfony/issues/2059)
那么,我如何接受带逗号和小数点的数字呢?
(我已经尝试用DataTrasformer中的点替换逗号,但是DataTransformer接受已经规范化的数字.)
我有一个方法用于从我的iOS应用程序中的各种视图中获取图像,以便让用户通过电子邮件发送屏幕.我绘制的大多数屏幕都工作正常,但是当我使用UIWebView的这种技术时,我只得到屏幕的可见部分.屏幕外的任何内容都不包含在渲染图像中.在堆栈上一直在这里挖掘,但到目前为止我找不到什么工作?!
这是我目前使用的方法:
-(NSData *)getImageFromView:(UIView *)view
{
NSData *pngImg;
CGFloat max, scale = 1.0;
CGSize size = [view bounds].size;
// Scale down larger images else we run into mem issues with mail widget
max = (size.width > size.height) ? size.width : size.height;
if( max > 960 )
scale = 960/max;
UIGraphicsBeginImageContextWithOptions( size, YES, scale );
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
pngImg = UIImagePNGRepresentation( UIGraphicsGetImageFromCurrentImageContext() );
UIGraphicsEndImageContext();
return pngImg;
}
Run Code Online (Sandbox Code Playgroud)