我的应用程序有问题。我正在构建一个属于某种 webApp 的应用程序。所以应用程序在服务器上运行,我通过 UIWebview 与它交互。
所以让我解释一下我在这里想要实现的目标。在网页上我有几个 Javascript 函数,我通过 stringByEvaluatingJavaScriptFromString 示例与这些函数进行交互:代码:
[webView stringByEvaluatingJavaScriptFromString:@"tagMe()"];
服务器执行此命令并执行以下操作
它将 URLPrefix 设置为 ServerReply://() 我用
- (BOOL)webViewUIWebView *)webView shouldStartLoadWithRequestNSURLRequest *)request navigationTypeUIWebViewNavigationType)navigation Type
因此,如果 URL 具有前缀 ServerReply://,它将在我的应用程序中运行一个函数。
到目前为止一切都很好,但是当用户按下 HOME 按钮或接到电话时。ApplicationDidEnterBackground 方法将被调用,我想调用另一个 JS 函数
代码:
[webView stringByEvaluatingJavaScriptFromString:@"gettingClosed()"];
然后服务器应该给我一个带有前缀 SaveClientData://(somestring) 的 URL
所以应用程序关闭并且它不起作用....我的代码是这样的
代码:
//AppDelegate.m
- (void)applicationDidEnterBackground:(UIApplication *)application {
[webViewController killTrigger];
}
//webViewController. m
-(void)killTrigger{
[webView stringByEvaluatingJavaScriptFromString:@"gettingClosed()"];
}
这不起作用,但如果我做代码:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[webViewController killTrigger];
}
//webViewController. m
-(void)killTrigger{
NSLog(@"killTrigger got called");
}
我离开应用程序时收到日志消息...
是否可以做 [webView stringByEvaluatingJavaScriptFromString:@"gettingCl osed()"]; 如果我的应用程序移到后台?还是有不同的方法来获得相同的结果......?
tnx 提前,
巴特