是否可以在 Cordova 应用程序中的 web 视图顶部放置静态图像

Posted

技术标签:

【中文标题】是否可以在 Cordova 应用程序中的 web 视图顶部放置静态图像【英文标题】:Is it possible to place a static image on top of the webview in a Cordova applicaiton 【发布时间】:2015-08-06 13:41:29 【问题描述】:

我的情况如下:我有一个必须在 ios 上运行的 Cordova 应用程序。当应用处于后台时,我必须防止敏感信息显示在应用切换器中。

Apple 为本地应用程序提供了这个 solution,这似乎无法解决我的问题,因为它不会以任何方式操纵 Web 视图。

我想知道我是否可以在本地放置一些覆盖 webview 的静态图像。据我了解,系统会在调用 applicationDidEnterBackground: 方法后立即截取视图。

这样系统会截取我放在顶部的图像而不是 webview 的实际内容。

我不是经验丰富的 iOS 开发人员,如果有任何建议,我将不胜感激。

谢谢。

【问题讨论】:

您可以添加一个带有适当z-index 的全屏 div,不是原生的,但它会起作用。 Detect If Browser Tab Has Focus 可能有用。 谢谢,但我有些担心。操作任何 Web 内容与本机应用程序生命周期是异步的。所以大多数肯定显示空白 div 不会按时发生,或者至少我不能依赖它。 【参考方案1】:

事实证明,苹果的解决方案可以通过我的小修改来解决问题。

而不是实现

- (void)applicationDidEnterBackground:(UIApplication *)application

我实现了

-(void)applicationWillResignActive:(UIApplication *)application

然后,无论你点击一次或两次主页按钮,它都会用刚刚创建的空白控件覆盖视图控制器。

-(void)applicationWillResignActive:(UIApplication *)application 
    UIViewController *blankViewController = [UIViewController new];

    //this is how to attach image
    UIImage *splashImage = [UIImage imageNamed:@"some image"];
    blankViewController.view.backgroundColor = [UIColor colorWithPatternImage: splashImage];

    // set some transition style
    blankViewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;

    [self.window.rootViewController presentViewController:blankViewController animated:YES completion:NULL];


- (void)applicationDidBecomeActive:(UIApplication *)application


    [self.window.rootViewController dismissViewControllerAnimated:YES completion:NULL];

【讨论】:

以上是关于是否可以在 Cordova 应用程序中的 web 视图顶部放置静态图像的主要内容,如果未能解决你的问题,请参考以下文章

Web 推送通知是不是可以在 Apache Cordova Android 应用程序中使用?

Phonegap/Cordova 国际化支持

为 Phonegap / Cordova iphone 应用程序设置 CMS

WEB SQL 不适用于 Cordova 本地应用程序

如何在android studio中cordova的混合开发

后台 Javascript 或 Cordova 应用程序中的计时器任务