1

webviewに「navigate」イベントがありますかnativescriptNatviescript navview navigate

私は

Browser.Navigating += Myfunction 

Xamarin(C#の)でそれをやったnativescriptで、このような任意のイベントはありますか?私は、Webサイトのスコープ外のリンクをクリックすると、デバイスがそのURLのWebページを開き、Webview内をナビゲートしないようにしたいと考えています。

+0

を支援'HtmlView'を使って' URL'を表示することができます。リンクをタップすると、デバイスブラウザにリダイレクトされます。 '' –

+0

そうではありません。私はWebViewを持っていると私は、Webview内のリンクをクリックするとき私はリンクがWebviewで私のサイトのスコープ内にあるかどうかを検出したい、またはそれは外部リンクの場合は、私は新しいブラウザの意図を開きたい。 –

答えて

1

これを行うには、WebViewloadStartedEventを処理し、サイトのスコープ内にあるかどうかを確認することができます。そうでない場合は、webviewに新しいURLを設定すると、ユーザーが別のWebページに移動するのを防ぐことができます。私はサンプルコードを添付しています。

メインpage.xml

<Page xmlns:RL="nativescript-ripple" xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo"> 
<GridLayout> 
    <WebView src="https://www.google.bg/" id="wv" /> 

</GridLayout> 
</Page> 

メインpage.ts

import { EventData } from 'data/observable'; 
import { Page } from 'ui/page'; 
import { HelloWorldModel } from './main-view-model'; 
import {StackLayout} from "ui/layouts/stack-layout"; 
import {WebView, LoadEventData} from "ui/web-view" 

// Event handler for Page "navigatingTo" event attached in main-page.xml 
export function navigatingTo(args: EventData) { 

    let page = <Page>args.object; 

    var webview:WebView = <WebView> page.getViewById("wv"); 
    webview.on(WebView.loadStartedEvent, function (args: LoadEventData) { 

     let message; 
     console.log("url "+args.url.substring(0, 21)); 
     console.log("eventName "+args.eventName); 
     console.log("navigationType "+args.navigationType); 
     if(args.url.substring(0, 21) !== "https://www.google.bg/"){ 
      (<WebView>args.object).url="https://www.google.bg/"; 
      console.log("returns back"); 
     } 
    }); 
} 

希望これは、私はあなたがしかし、私の意見では、私が正しくあなたのケースを理解していることを確認していない

関連する問題