2013-05-20 32 views
0

我的Android應用程序有一些複雜的文本,裏面嵌入了超鏈接。我處理這個問題最簡單的方法就是使用嵌入式WebView並檢測超鏈接點擊來執行自定義命令。我正在嘗試使用MvvmCross的方式。是否有可用於WebView.SetBackgroundColor或WebView.LoadData的綁定?一旦我得到自定義html並且用戶點擊超鏈接,我就使用WebView.SetWebViewClient安裝我自己的客戶端,它可以檢測超鏈接點擊並執行自定義操作。任何方式將所有這些轉換爲適當的MvxCommand用法?MvvmCross:Android自定義webview網址處理程序

回答

1

是否有約束力的可供WebView.SetBackgroundColor

對於View色彩結合看樣品:https://github.com/slodge/MvvmCross-Tutorials/tree/master/ValueConversion

或WebView.LoadData?

Dynamic Binding UIWebView in MVVMCross

我已經使用WebView.SetWebViewClient安裝我自己的客戶端,它可以檢測超鏈接點擊和執行自定義操作。任何方式將所有這些轉換爲適當的MvxCommand用法?

我不清楚你的問題是什麼。也許可以先嚐試編碼,然後再回來一些示例代碼來解決問題 - 例如回到關於特定ViewModel的特定問題,以便其他人可以嘗試在代碼級別而不是在更一般的級別進行回答。或許也試着問一個問題,在時間和細節進行更深層次的要求 - 如何問可以幫助你獲得更好的結果 - 看https://stackoverflow.com/questions/how-to-ask

0

我通過繼承創建一個自定義的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); 
     } 
    } 
}