标签: uiwebview

即使UIWebView关闭,视频/音频流也不会停止 - iPad

我只在iPad上看到这个问题.同样的东西在iPhone上运行正常.

我在UIWebView中打开我的应用程序的URL.如果URL是普通网页,它可以正常工作.但是,如果URL是远程视频/音频文件的URL,则UIWebView会打开默认播放器,这又是好的.

现在,当我关闭UIWebView(通过点击播放器上的完成按钮)时,流媒体不会停止,音频/视频会在后台继续播放(我看不到它,但它确实在后台继续播放,可以听到它).创建webview的UIViewController也被解除分配(我在dealloc方法中放入了一个日志语句),但是流不会停止.

有人可以帮我解释为什么会发生这种情况吗?当UIWebView关闭时,如何停止音频/视频流?

谢谢.

video-streaming uiwebview ipad

33
推荐指数
1
解决办法
3万
查看次数

在iOS 10.0中不推荐使用'openURL':请使用openURL:options:completionHandler:而不是在Swift 3中

我已经开放了webLink网址代码,Swift3但是当我使用它时,会给我这个警告;

在iOS 10.0中不推荐使用'openURL':请使用openURL:options:completionHandler:而不是

我如何解决它,我的代码如下.

let myUrl = "http://www.google.com"
 if !myUrl.isEmpty {
                                UIApplication.shared.openURL(URL(string: "\(myUrl)")!)
                            }
Run Code Online (Sandbox Code Playgroud)

谢谢.

uiwebview ios swift3

33
推荐指数
2
解决办法
2万
查看次数

为什么滚动UIWebView*感觉*与滚动任何其他UIScrollView有很大不同?

我建立加载的应用程序简单的HTML(本地)的量为单一全屏的UIWebView.我注意到滚动此Web视图与滚动任何其他UIScrollView 很大不同.这似乎不是性能或响应性问题本身......这只是在向上和向下拖动和轻弹Web视图时动量如何发挥作用的问题.它只是感觉不是非常"原生"(因为没有更好的词).这就像滚动糖蜜或布丁......有点"粘"而不像你想要的那样"光滑".

有谁知道是什么原因造成的?有没有办法解决它,或者至少使滚动UIWebView感觉更"原生"?

cocoa-touch uiwebview uiscrollview ios

32
推荐指数
1
解决办法
7065
查看次数

仅使用纵向应用在景观上允许视频

我有一个UIViewController中包含的UIWebView,它是UINavigationController的后代.它看起来像这样:

主要观点

该应用程序仅限肖像.当我播放视频时,我希望用户能够旋转设备并以横向模式观看视频.我使用这段代码来允许它:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    id presentedViewController = [self topMostController];
    NSString *className = presentedViewController ? NSStringFromClass([presentedViewController class]) : nil;

    if ([className isEqualToString:@"MPInlineVideoFullscreenViewController"] ||
        [className isEqualToString:@"MPMoviePlayerViewController"] ||
        [className isEqualToString:@"AVFullScreenViewController"]) {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }

    return UIInterfaceOrientationMaskPortrait;
}

- (UIViewController *)topMostController {
    UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;

    while (topController.presentedViewController) {
        topController = topController.presentedViewController;
    }

    return topController;
}
Run Code Online (Sandbox Code Playgroud)

然后在我的UINavigationController中(所以当视频完成后,视图不会以横向呈现,只能以纵向呈现):

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}
Run Code Online (Sandbox Code Playgroud)

一切都很完美:

视频肖像 视频风景

但是视频完成播放(或者用户点击'完成')并且屏幕返回到底层视图,这是发生的事情:

导航栏问题

如您所见,导航栏在状态栏下滑动.另外,我在日志中遇到了很多自动布局错误:http …

objective-c uiwebview uinavigationcontroller screen-rotation ios

32
推荐指数
2
解决办法
6453
查看次数

Flutter:如何修复ITMS-90809:不推荐使用的API-Apple将停止接受使用UIWebView API的应用程序的提交

在提交我的最新版本时,Apple突然返回一条消息,指出存在问题,特别是:

ITMS-90809:不推荐使用的API-Apple将停止接受使用UIWebView API的应用程序的提交。有关更多信息,请参见https://developer.apple.com/documentation/uikit/uiwebview

由于我没有使用webview插件,所以我对使用的位置一无所知UIWebView API。关于如何解决这个问题的任何建议?

最新的稳定flutter版本1.7.8 + hotfix.4并包含以下软件包会出现此错误:

http: ^0.12.0
shared_preferences: ^0.4.3
intl: any
permission_handler: ^2.1.2
contacts_service: ^0.2.8
image: ^2.0.5
cached_network_image: ^1.0.0
url_launcher: ^5.0.1
path_provider: ^0.5.0+1
after_layout: ^1.0.7
connectivity: ^0.4.3+1
device_info: ^0.4.0+2
firebase_auth: ^0.11.1+7
firebase_messaging: ^5.1.2
firebase_analytics: ^5.0.0
notification_permissions: ^0.4.0
Run Code Online (Sandbox Code Playgroud)

所有软件包都已更新为最新版本。

输出flutter doctor为:

[?] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.6 18G87, locale en-US)
    • Flutter version 1.7.8+hotfix.4 at /Users/per/flutter
    • Framework revision 20e59316b8 (6 weeks ago), 2019-07-18 20:04:33 -0700
    • Engine …
Run Code Online (Sandbox Code Playgroud)

uiwebview ios flutter

32
推荐指数
3
解决办法
7768
查看次数

UIWebView是否在请求标头中发送与移动Safari相同的用户代理?

对不起,我会亲自测试一下,但我现在没有我的mac.在UIWebView内部发出的Web请求是否发送了与移动Safari发出的Web请求相同的用户代理信息?

iphone user-agent uiwebview

31
推荐指数
2
解决办法
3万
查看次数

在不使用UIWebView的情况下在iPhone应用中播放YouTube视频?

我想从我的iPhone应用程序播放YouTube视频.我必须尝试使用​​以下代码在我的iPhone应用中播放YouTube视频,

[self playVideo:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q" frame:CGRectMake(20, 70, 280, 250)];

- (void)playVideo:(NSString *)urlString frame:(CGRect)frame
{
    NSString *embedHTML = @"\
    <html><head>\
    <style type=\"text/css\">\
    body {\
    background-color: transparent;\
    color: white;\
    }\
    </style>\
    </head><body style=\"margin:0\">\
    <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
    width=\"%0.0f\" height=\"%0.0f\"></embed>\
    </body></html>";
    NSString *html = [NSString stringWithFormat:embedHTML, urlString, frame.size.width, frame.size.height];
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.view addSubview:videoView];
    [videoView release];
    NSLog(@"%@",html);
}
Run Code Online (Sandbox Code Playgroud)

但是,这段代码对我不起作用.而且我也试过MPMoviePlayerController代码是,

NSURL *fileURL = [NSURL URLWithString:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q"];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)]; 
[self.view …
Run Code Online (Sandbox Code Playgroud)

youtube iphone mpmovieplayercontroller uiwebview ios

31
推荐指数
3
解决办法
3万
查看次数

为什么在创建UIWebView时清除NSUserDefaults会导致EXC_CRASH?

在开始之前,我应该告诉你,这只发生在iOS 5.1中.在最近的更新之前,这从未发生过,并且它仍然不会发生在任何其他版本上.那就是说,这是正在发生的事情.

当用户退出我的应用程序时,发生的一件事就是NSUserDefaults删除了所有内容.而不是手动删除我可能添加到用户默认值的每个键,我只是NSUserDefaults使用此SO问题中建议的方法完全删除所有键:

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Run Code Online (Sandbox Code Playgroud)

然而,似乎发生了什么,每次我尝试创建一个UIWebView删除后NSUserDefaults,我得到一个EXC_CRASH (SIGABRT).当我打电话时发生了崩溃[[UIWebView alloc] initWithFrame:frame].奇怪吧?完全退出并重新打开应用程序可以UIWebView再次创建s.

所以,我设法找出删除默认值会导致UIWebView问题,但可以肯定的是,我添加了一个符号断点-[NSUserDefaults setObject:forKey:].

-  [NSUserDefaults setObject:forKey:]断点

创建UIWebView确实会触发断点.

浏览崩溃日志给出了例外原因:

-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitLocalStorageDatabasePathPreferenceKey)
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的开始:

0 CoreFoundation 0x3340688f __exceptionPreprocess + 163
1 libobjc.A.dylib 0x37bd4259 objc_exception_throw + 33
2 CoreFoundation 0x33406789 +[NSException raise:format:] + 1
3 CoreFoundation 0x334067ab +[NSException raise:format:] + 35 …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiwebview nsuserdefaults ios

31
推荐指数
1
解决办法
4848
查看次数

如何截取IOS上的UIWebview内的Button点击?

我有一个HTML表单,其中包含我在UIWebview中打开的某些字段.点击特定按钮后,我想进行应用操作.

我现在使用的方法是点击按钮,我将页面重定向到虚拟URL.我使用委托方法"shouldStartLoadWithRequest"嗅探URL并停止重定向.然后,我做我的自定义事件(捕获图像和上传),然后继续.这似乎是一个丑陋的黑客.无论如何,我可以直接挂钩按钮点击事件而不是页面重定向?

更新 当按钮单击调用JS函数时,似乎无法设置要触发的委托方法.唯一的方法是使用上面提到的URL嗅探方法.这个已经由joern在下面详细解释过,所以我会接受他的回答.

javascript iphone onclick uiwebview ios

31
推荐指数
1
解决办法
4万
查看次数

在UIWebView/WKWebView中将CSS插入到加载的HTML中

我成功地获取HTML内容并显示到我的UIWebView中.

但是想要通过添加外部CSS文件来自定义内容.我只能改变文字和字体的大小.我尝试了所有可能的解决方案来进行更改,但它不起作用 - 它没有显示任何变化.

以下是我的代码

HTMLNode* body = [parser body];
HTMLNode* mainContentNode = [body  findChildWithAttribute:@"id" matchingName:@"main_content" allowPartial:NO];
NSString *pageContent = [NSString stringWithFormat:@"%@%@", cssString, contentHtml];
        [webView loadHTMLString:pageContent baseURL:[NSURL URLWithString:@"http://www.example.org"]];

-(void)webViewDidFinishLoad:(UIWebView *)webView1{
    int fontSize = 50;
    NSString *font = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'", fontSize];
    NSString *fontString = [[NSString alloc] initWithFormat:@"document.getElementById('body').style.fontFamily=\"helvetica\""];

    [webView1 stringByEvaluatingJavaScriptFromString:fontString];
    [webView1 stringByEvaluatingJavaScriptFromString:font];
}
Run Code Online (Sandbox Code Playgroud)

请帮助我在我的视图中获取css样式表.

objective-c uiwebview ios wkwebview

31
推荐指数
2
解决办法
3万
查看次数