我正在使用新语言Swift构建iOS应用程序.现在它是一个HTML5应用程序,使用UIWebView显示HTML内容.该应用程序具有本地通知,我想要做的是当应用程序通过单击(触摸)本地通知进入前台时触发UIWebView中的特定javascript方法.
我看过这个问题,但它似乎没有解决我的问题.我也遇到过这个问题,它告诉我使用UIApplicationState,这很好,因为这可以帮助我知道应用程序从通知进入前台.但是当应用程序恢复时,我如何在应用程序恢复时显示的视图的viewController中调用方法?
我想做的是获取我的ViewController的一个实例并将其中的属性设置为true.事情如下
class FirstViewController: UIViewController,UIWebViewDelegate {
var execute:Bool = false;
@IBOutlet var tasksView: UIWebView!
}
Run Code Online (Sandbox Code Playgroud)
在我的AppDelegate中我有方法
func applicationWillEnterForeground(application: UIApplication!) {
let viewController = self.window!.rootViewController;
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("FirstView") as FirstViewController
setViewController.execute = true;
}
Run Code Online (Sandbox Code Playgroud)
所以我想做的是当应用程序再次进入前台时,我想查看执行变量并按如下方式运行方法,
if execute{
tasksView.stringByEvaluatingJavaScriptFromString("document.getElementById('sample').click()");
}
Run Code Online (Sandbox Code Playgroud)
我应该在哪里放置逻辑代码来从webview中触发javascript?它会在viewDidLoad方法,还是其中一个webView委托方法?我试图将该代码放在viewDidLoad方法中,但布尔执行的值设置为其初始值,而不是当应用程序进入前台时在委托中设置的值.
所以我正在开发一个使用HTML内容的iOS应用程序UIWebView.为什么选择UIWebView而不是WKWebView?我希望这个应用程序在 iOS7及更高版本上运行.我刚刚将Xcode更新为Xcode 6.1,webView当从4英寸屏幕尺寸更改为4.7及以上时,我无法按比例缩放以适应可用的屏幕空间.
我所追求的是让我的应用程序在4英寸及以上的所有iPhone屏幕尺寸上看起来一致,因为我在Web视图上显示的所有HTML5代码都是.
在我的属性检查器中,我已将大小设置为iPhone 4英寸,您可以在下面的链接中分别看到4英寸和4.7英寸大小的iPhone模拟器中应用程序的外观, http://imgur.com/图库/ tz7LG /新
如何在不同尺寸的iPhone屏幕上适当扩展?
fyi,我已将Scale页面设置为适合我的webView的true.我正在使用Swift构建这个应用程序.