アプリケーションに問題があります。ある種の webApp であるアプリケーションを構築しています。したがって、アプリケーションはサーバー上で実行され、UIWebview を介してやり取りします。
それでは、ここで何を達成しようとしているのかを説明しましょう。Webページにはいくつかの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、
バート