有不明白的地方欢迎入群 347636249 探讨
NSBundle.MainBundle.BundlePath
和朋友一起构思了一个想法,借用他的思路捣鼓了一会,效果还行。
先上一段代码看看:
RectangleF newrec = UIScreen.MainScreen.Bounds; UIWebView webView = new UIWebView(newrec); NSUrl nsurl = new NSUrl("http://www.baidu.com"); webView.LoadRequest(new NSUrlRequest(nsurl)); webView.ShouldStartLoad = delegate(UIWebView v, NSUrlRequest r, UIWebViewNavigationType t) { if (t == UIWebViewNavigationType.LinkClicked) { Console.WriteLine(r.Url.ToString()); this.NavigationController.PushViewController(new MainScreen(), true); return false; } return true; }; this.View.Add(webView);
我想不用多说,后面这么搞你们懂的。
NSUrl fileUrl = NSUrl.FromFilename("index.html"); NSUrlRequest req = new NSUrlRequest(fileUrl); this.KPIWebView.LoadRequest(req); this.KPIWebView.ShouldStartLoad = myHandler; this.KPIWebView.LoadFinished += delegate { indicator.StopAnimating (); this.KPIWebView.Hidden = false; }; bool myHandler(UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navType) { Console.WriteLine(request.Url.ToString()); if(request.Url.ToString() == "about:blank") {return false;} // doesn't help to avoid loading the "about:blank" if(request.Url.ToString() == "ttl://data/salesGrowth/global") { string strData = Connection.Login("http://[yourIP/path]/salesGrowth/global"); return false; try{ this.KPIWebView.EvaluateJavascript("Util.loadStoreData("+strData+")"); return false; } catch(Exception ex) { Console.WriteLine(ex.ToString()); } return true; } }
另外,UIWebView有一个EvaluateJavascript方法,它可以执行js串,而js可以做些什么呢,不用我多说,各位可以尽情发挥了。
ps,这样app都可以用pc端的页面来处理,mono就相当于一个架子了。