これを行うには、WebView
loadStartedEvent
を処理し、サイトのスコープ内にあるかどうかを確認することができます。そうでない場合は、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");
}
});
}
希望これは、私はあなたがしかし、私の意見では、私が正しくあなたのケースを理解していることを確認していない
を支援'HtmlView'を使って' URL'を表示することができます。リンクをタップすると、デバイスブラウザにリダイレクトされます。 ' ' –
そうではありません。私はWebViewを持っていると私は、Webview内のリンクをクリックするとき私はリンクがWebviewで私のサイトのスコープ内にあるかどうかを検出したい、またはそれは外部リンクの場合は、私は新しいブラウザの意図を開きたい。 –