私のアプリには連絡先情報を表示するためのWebViewがあります。 Device.OpenUri()
を使用して外部からロードするウェブサイトへのリンクがあります。 FreshMvvmを使用していて、ViewModelのWebViewからNavigating
イベントをインターセプトして、外部ページをWebViewにロードするデフォルトのアクションをキャンセルします。WebViewをインターセプトする方法ViewModelでイベントをナビゲートする
私は私のViewModelコマンドを呼び出していCorcav.Behaviorsプラグイン使用して試してみた:
<WebView
HorizontalOptions="Fill"
VerticalOptions="FillAndExpand"
Source="{Binding WebViewSource}">
<b:Interaction.Behaviors>
<b:BehaviorCollection>
<b:EventToCommand
EventName="Navigating"
Command="{Binding NavigatingCommand}"
CommandParameter="{Binding}"/> <!-- what goes here -->
</b:BehaviorCollection>
</b:Interaction.Behaviors>
</WebView>
をしかし、私はCommandParameterがどうあるべきかわからない - 私は、タップされたリンクのURIを必要とし、私はどのようにデフォルトの動作が発生しないようにするか分からない。
これは最善の方法ですか、代替手段を検討する必要がありますか?
を指定する必要はありませんCommandParameter、NavigatingCommandはDelegateCommand型でなければなりません。tappedItemは引数のitemプロパティです。 –
rauland
@raulandこのアプローチを使うと、つまりCommandParameterを省略すると、パラメータータイプとして 'object'を指定しても、パラメーターとして何も渡されません。 –