이렇게하려면 WebView
loadStartedEvent
을 처리하고 사이트의 범위에 있는지 여부를 확인할 수 있습니다. 그렇지 않다면 webview에 새 URL을 설정할 수 있으며 사용자가 다른 웹 페이지로 이동하는 것을 방지 할 수 있습니다. 나는 샘플 코드를 첨부하고있다.
메인에서 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에서 내 사이트의 범위 내에 있는지 또는 외부 링크인지 감지하려고합니다. 외부 링크 인 경우 새 브라우저 인 텐트를 열고 싶습니다. . –