Javascript iOS和Android webview:如何关闭webview并返回应用程序?
我正在开发一个网页,该网页将由iOS和Android应用程序使用网络视图调用Javascript iOS和Android webview:如何关闭webview并返回应用程序?,javascript,android,ios,webview,uiwebviewdelegate,Javascript,Android,Ios,Webview,Uiwebviewdelegate,我正在开发一个网页,该网页将由iOS和Android应用程序使用网络视图调用 此网页将向用户提示表单 用户必须填写字段并提交表单 提交表单后,我将用户重定向到另一个URL 加载此最终URL时,我需要关闭webview 是否可以在网页中对此进行访问,或者是否需要由打开webview的应用程序进行管理?那怎么可能呢 我读了一些关于UIWebViewDelegate的文章,但我不确定它是否是正确的解决方案 谢谢您可以使用UIWebViewDelegate方法跟踪页面是否已加载并执行任何操作: -(vo
谢谢您可以使用
UIWebViewDelegate
方法跟踪页面是否已加载并执行任何操作:
-(void)webViewDidFinishLoad:(UIWebView *)webView
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
-(void)webViewDidStartLoad:(UIWebView *)webView
例如:你可以使用didfish,比如:
-(void)webViewDidFinishLoad:(UIWebView *)webView{
if(finalURLReached)
[self dismissViewControllerAnimated:YES completion:nil];
}
在您的最终URL中使用散列,如查看URL 在Android上:
mWebview.setWebViewClient(新的WebViewClient(){
@凌驾
公共void onPageFinished(WebView视图,字符串url){
super.onPageFinished(视图、url);
if(url.endsWith(#closeWebview”)){
mWebview.setVisibility(View.GONE);
}
}
});
使用新的WKWebView的解决方案(不推荐使用UIWebView!):
func closeWebview() {
if(controller.presentingViewController != nil && (nil == controller.navigationController || controller.navigationController?.viewControllers.count < 2 )){
controller.dismiss(animated: true, completion: completion)
}else{
controller.navigationController?.delegate = nil;
// self.animationInteractor.forceCompleteAnimation(.Left)
let c = controller.navigationController?.viewControllers.count
let ct = c! - 2;
controller.navigationController?.popViewController(animated: true)
if controller.navigationController?.viewControllers[ct] is UITransitionViewController {
controller.navigationController?.transitioningDelegate = controller.navigationController?.viewControllers[ct] as! UITransitionViewController;
}
}
}
func closeWebview(){
如果(controller.presentingViewController!=nil&&(nil==controller.navigationController | | controller.navigationController?.viewControllers.count<2)){
控制器。解除(动画:真,完成:完成)
}否则{
controller.navigationController?.delegate=nil;
//self.animationInteractor.forceCompleteAnimation(.Left)
设c=controller.navigationController?.viewControllers.count
设ct=c!-2;
controller.navigationController?.popViewController(动画:true)
如果controller.navigationController?.ViewController[ct]是UITransitionViewController{
controller.navigationController?.TransitionDelegate=controller.navigationController?.ViewController[ct]作为!UITransitionViewController;
}
}
}
func closeWebview() {
if(controller.presentingViewController != nil && (nil == controller.navigationController || controller.navigationController?.viewControllers.count < 2 )){
controller.dismiss(animated: true, completion: completion)
}else{
controller.navigationController?.delegate = nil;
// self.animationInteractor.forceCompleteAnimation(.Left)
let c = controller.navigationController?.viewControllers.count
let ct = c! - 2;
controller.navigationController?.popViewController(animated: true)
if controller.navigationController?.viewControllers[ct] is UITransitionViewController {
controller.navigationController?.transitioningDelegate = controller.navigationController?.viewControllers[ct] as! UITransitionViewController;
}
}
}