【问题标题】:Opening ViewController when click on button in UIWebView swift在 UIWebView swift中单击按钮时打开 ViewController
【发布时间】: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 中有没有办法做到这一点?

【问题讨论】:

    标签: javascript html ios swift webview


    【解决方案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”,这只是一个示例名称
      猜你喜欢
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 2022-10-02
      • 2018-11-28
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多