Nativescript Webview回调uri

Atu*_*ary 4 authentication oauth-2.0 nativescript

我们可以在nativescript中从外部URL回发到Web视图并从回发中获取值吗?它是带有重定向uri的oauth2流,用户在本地webview中显示网站的外部链接,并从回发网址获取令牌值.任何关于tut或博客的建议或指针?所有主要参与者都为此提供支持,并且它非常适用于oauth.

Atu*_*ary 7

这是我的main-page.js,其中所有的标记和值都在args.url下的函数中

var vmModule = require("./main-view-model");
var webViewModule = require('ui/web-view');
function pageLoaded(args) {

    var page = args.object;
    page.bindingContext = vmModule.mainViewModel;
    var webView = page.getViewById('myWebView');
    debugger;
    //webView.url = 
    webView.on(webViewModule.WebView.loadFinishedEvent, function (args) {
        alert(JSON.stringify(args.url));
    });
    webView.src = vmModule.mainViewModel.url;

}
exports.pageLoaded = pageLoaded;
Run Code Online (Sandbox Code Playgroud)

我的观点是

<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded">
    <GridLayout>
        <WebView id="myWebView" />
    </GridLayout>
</Page>
Run Code Online (Sandbox Code Playgroud)

它一直写在文档中,我只是没有仔细看.希望它会帮助别人.


Emi*_*erg 5

您应该能够观察urlProperty变化.例如

鉴于您有一个看起来像这样的视图:

<Page loaded="loaded">
     <WebView id="myWebView" src="{{ url }}" />
</Page>
Run Code Online (Sandbox Code Playgroud)

然后,您可以将观察者附加到该WebView,并对URL属性的更改做出反应,如下所示:

var webViewModule = require('ui/web-view');

function loaded(args) {
    var page = args.object;
    var webView = page.getViewById('myWebView');
    webView.on(webViewModule.WebView.urlProperty, function (changeArgs) {
        console.dir(changeArgs); 
        // Do something with the URL here.
        // E.g. extract the token and hide the WebView.
    });
}
Run Code Online (Sandbox Code Playgroud)