Nativescript Angular Webview-向url和android后退按钮添加参数

时间:2019-12-13 18:00:46

标签: android angular webview nativescript

我正在使用网络视图显示网站的移动版本,但是导航存在两个问题。

第一:我想向要加载的网址添加一些参数。例如。单击一个元素,然后转到 www.mywebsite.com/1234 / 。我想向此网址添加两个参数,然后重定向到 www.mywebsite.com/1234/?param1=1¶m2=2 。现在,我有了执行此重定向的代码,但是它很慢,而且我不知道是否存在另一种无需进行重定向的方法,因为我两次调用了 onLoadStarted 函数。

代码:

onLoadStarted(args: LoadEventData) {
    if (!args.error && this.previousUrl != args.url) {
        this.webViewSrc = args.url + "?param1=1&param2=2";
        this.previousUrl = this.webViewSrc;
    }
}

第二个:我正尝试使用android中的物理后退按钮返回,但是在点击此按钮或给我一个错误后,该应用始终会关闭,但不会重定向到上一个网页。我正在捕获后退按钮事件,但是我不知道如何指定先前的URL并避免关闭该应用程序。我尝试应用与上一点相同的方法,但始终关闭该应用程序。如果对于点1(两次重定向)不存在其他方式,我如何指定back事件转到上一个url(带有参数的前一个url,而不是没有参数的当前url)。我尝试使用webview.goBack(),但始终给我goBack不是函数。我使用以下代码捕获事件:

ngOnInit() {

    if (!isAndroid) {
      return;
    }

    application.android.on(AndroidApplication.activityBackPressedEvent, (data: AndroidActivityBackPressedEventData) => {

      if (this.webView.canGoBack) {
        this.webView.goBack();
      }
    }
}   

我想要的流程的完整示例:

  • 在应用程序加载时:www.mywebsite.com
  • 单击某些元素: www.mywebsite.com/1234 / ->自动重定向到 www.mywebsite.com/1234/?param1=1¶m2=2 < / li>
  • 按下物理后退按钮:我想转到 www.mywebsite.com 而不是 www.mywebsite.com/1234 /

完整代码: -Component.ts:

webViewSrc = "https://www.mywebsite.com/";

previousUrl = "";

ngOnInit() {

    if (!isAndroid) {
      return;
    }

    application.android.on(AndroidApplication.activityBackPressedEvent, (data: AndroidActivityBackPressedEventData) => {

      if (this.webView.canGoBack) {
        this.webView.goBack();
      }
    }
}   


onLoadStarted(args: LoadEventData) {
    if (!args.error && this.previousUrl != args.url) {
        this.webViewSrc = args.url + "?param1=1&param2=2";
        this.previousUrl = this.webViewSrc;
    }
}
  • component.html
    <WebView id="webviewId"
            [src]="webViewSrc" 
             (loadStarted)="onLoadStarted($event)" 
             (loadFinished)="onLoadFinished($event)">
    </WebView>

在简历中:

  • 问题1:在元素上单击,直接使用参数进入url www.mywebsite.com -> www.mywebsite.com/1234/?param1=1¶m2=2 没有加载的网址,没有参数的网址(www.mywebsite.com/1234 /)

  • 问题2:在Android后退按钮上,单击我想返回www.mywebsite.com,而不是不带参数的当前网页(www.mywebsite.com/1234 /)

任何提示或帮助都会得到好评。

谢谢

0 个答案:

没有答案