在 UIWebView swift中单击按钮时打开 ViewController
Posted
技术标签:
【中文标题】在 UIWebView swift中单击按钮时打开 ViewController【英文标题】:Opening ViewController when click on button in UIWebView swift 【发布时间】:2016-08-09 11:55:00 【问题描述】:我有一个具有 UIWebView 的应用程序,并且 Webview 包含简单的 Button
这是我的 WebViewController :
import UIKit
class testViewController: UIViewController
internal static var testID = 0
@IBOutlet weak var myWebView: UIWebView!
override func viewDidLoad()
super.viewDidLoad()
override func viewDidAppear(animated: Bool)
super.viewDidAppear(animated)
let url = NSURL (string: "http://mydomainname/index.html");
let requestObj = NSURLRequest(URL: url!);
myWebView.loadRequest(requestObj);
而 webView 完美地显示了我的 HTML
当我单击 HTML 文件中的按钮时,我只需要从我的 ios 项目中展示一个 newViewController 吗?
像这样:
<button onclick="myFunction()> Submit </button>
<script>
function myFunction()
presentViewController('myViewControllerName');
</script>
在 iOS 中有没有办法做到这一点?
【问题讨论】:
【参考方案1】:你可以在js动作中分配一个scheme:
window.location = yourscheme://<scheme_content>
在 swift 层你可以使用回调:
func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool
if (request.URL.scheme == "yourscheme")
// Your code
return true;
【讨论】:
【参考方案2】:是的,你可以这样做:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
if (navigationType == UIWebViewNavigationType.FormSubmitted)
let VC = self.storyboard?.instantiateViewControllerWithIdentifier("myViewControllerName") as? myViewControllerName
let navigationController = UINavigationController(rootViewController: VC!)
self.navigationController?.presentViewController(navigationController, animated: true, completion:nil)
return true
【讨论】:
我的 xcode 错误:使用未声明的类型 'myViewControllerName' 哈哈哈哈哈 - 我的 xcode 错误:使用未声明的类型 'myViewControllerName' 因为您需要给您的视图控制器名称,而不是“myViewController”,这只是一个示例名称以上是关于在 UIWebView swift中单击按钮时打开 ViewController的主要内容,如果未能解决你的问题,请参考以下文章
在 swift 4 上单击 UIWebview 上的播放视频时出错
我在UIWebView中加载Web视图,我需要单击网站上的登录按钮
当我单击 UIWebView 时,如何在 Safari 中打开链接?