读书人

【C#+Mono新手】怎么拦截WebView控件中

发布时间: 2013-03-17 13:48:32 作者: rapoo

【C#+Mono新手求助】如何拦截WebView控件中的超级链接事件及其它若干问题?
大家好,初次发帖,C#完全门外汉:)

事情是这样的,我想写一个Android应用,这个应用的界面是一个网页,位于远程服务器上,其中有N个超级链接,地址如button://cmdLogin_Click/,button://cmdExit_Click/这样的,用于用户的输入,同时还有一些文本框,也需要在程序中取得其内容.

现在想要拦截到上面的超级链接,并由程序来响应,这在VB中可以使用WebBrowser控件的BeforeNavigate2事件来完成,这个事件中的Url参数就是所点击的链接,只需要判断它就可以了.

但是在C#中不知道应该如何做到?

目前我的做法是新建一个类继承自WebViewClient,然后扔给WebView,但工程运行后自动退出了,汗...

主活动中的代码如下:

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Webkit;

namespace Sentry
{
[Activity(Label = "Sentry968", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);

WebView VW = FindViewById<WebView>(Resource.Id.webView1);
myWVC Wvc = new myWVC();

VW.SetWebViewClient(Wvc);
VW.LoadUrl("http://xxxxxxxx/");
}
}
class myWVC : WebViewClient
{
public override bool ShouldOverrideUrlLoading(WebView view, string url)
{
switch (url)
{
case "button://cmdExit_Click/":
System.Environment.Exit(0);
break;
}
return base.ShouldOverrideUrlLoading(view, url);
}
}
}



现在很怀疑是有语法错误,因为我毕竟没玩过C#以及Mono,可是编译布署都一切正常,于是百思不得骑姐了.....

另外还想请教的是,有什么日志输出的方式可以在Android中使用?如果可以调试的话自己还能慢慢摸索.

谢谢大家!
[解决办法]
给你刷个色吧。不过坦率地说,C#+Mono这种非主流的方案不会有多少人关注的,无论你是在C#(或者Mono)社区还是在Android社区讨论,关注者都是寥寥。
[解决办法]
学习。希望mono可以被微软给招安。

读书人网 >C#

热点推荐