我的 Android 应用程序有一些复杂的文本,其中嵌入了超链接。我处理这个问题的最简单方法是使用嵌入式 WebView 并检测超链接点击以执行自定义命令。我正在尝试以 MvvmCross 的方式做到这一点。是否有可用于 WebView.SetBackgroundColor 或 WebView.LoadData 的绑定?一旦我得到我的自定义 html 并且用户点击超链接,我就使用 WebView.SetWebViewClient 安装我自己的客户端,它可以检测超链接点击并执行自定义操作。有什么办法可以将所有这些变成正确的 MvxCommand 用法?
问问题
1397 次
2 回答
1
是否有可用于 WebView.SetBackgroundColor 的绑定
对于查看颜色绑定,请参见示例:https ://github.com/slodge/MvvmCross-Tutorials/tree/master/ValueConversion
还是 WebView.LoadData?
我使用 WebView.SetWebViewClient 安装了我自己的客户端,它可以检测超链接点击并执行自定义操作。有什么办法可以将所有这些变成正确的 MvxCommand 用法?
我不清楚你的问题是什么。也许先尝试编写一些代码,然后返回一些示例代码来解决问题 - 例如,返回一个关于特定问题的特定问题,ViewModel
以便其他人可以尝试在代码级别而不是在这个更一般的级别上回答。也许也可以尝试一次问一个问题并更详细地询问 -如何提问可能会帮助您获得更好的结果 - 请参阅https://stackoverflow.com/questions/how-to-ask
于 2013-05-20T16:13:46.343 回答
0
我通过继承和添加 Command 属性创建了一个自定义 WebView。然后我添加了一个自定义 WebViewClient 来检测某些 URL 并调用绑定的相应命令。这是实现这一目标的好方法吗?
public class AboutWebView : WebView
{
public IMvxCommand AboutCommand { get; set; }
public IMvxCommand LicenseCommand { get; set; }
public IMvxCommand PrivacyCommand { get; set; }
public AboutWebView (Context ctx,IAttributeSet aset) : base(ctx,aset)
{
SetWebViewClient (new AboutWebViewClient(this));
}
private class AboutWebViewClient : WebViewClient
{
private AboutWebView _parent = null;
public AboutWebViewClient(AboutWebView parent)
{
_parent = parent;
}
public override bool ShouldOverrideUrlLoading (WebView view, string url)
{
if (url.StartsWith ("about://"))
_parent.AboutCommand.Execute ();
else if (url.Equals (App.LICENSE_URL))
_parent.LicenseCommand.Execute ();
else
_parent.PrivacyCommand.Execute ();
return(true);
}
}
}
于 2013-05-21T02:39:50.483 回答