Blank WebView when loading web page using BoxSign API

Hi,

We are trying to load a page in the WebView using a web page that is returned from the Box API but it is just a blank page. The specific method from the Box API is for BoxSign e-signatures and we are experimenting with embedding a secure e-signature function within our VIKTOR app. The WebView loads the URL from a hidden TextField param that is set using a SetParamsButton.

I see in the print statements that it returns a valid web page. A sample URL is seen below.

https://app.box.com/embed/sign/document/xxx/xxx/

When I load the URL in my browser it works, but in VIKTOR it is blank. Is there a way to have this URL work within VIKTOR?

    @WebView("BoxSign", duration_guess=1)
    def boxsign_view(self, params, **kwargs):
        return WebResult(url=params.step0.s1.boxsign_embed_url)

This is what I notice when inspecting the page source of the WebView.

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="theme-color" content="#000000">
  <!--
      manifest.json provides metadata used when your web app is added to the
      homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
    -->
  <link rel="manifest" href="/manifest.json">
  <link rel="shortcut icon" href="/favicon.png">

  <title>VIKTOR</title>
  <meta name="description" content="With the VIKTOR application development platform you can quickly build your own web-applications. Automate the boring. Engineer the awesome!" />
  
  <script src="/mathjax3-tex-svg.js" id="MathJax-script" async></script>
  <script type="module" crossorigin src="/assets/index-BQjR6N_K.js"></script>
  <link rel="stylesheet" crossorigin href="/assets/index-CMZ6DEOz.css">
</head>

<body>
  <noscript>For full functionality of this page it is necessary to enable JavaScript. Please enable it and reload the page.
  </noscript>

  <div id="root"></div>
  <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
</body>

</html>

Hi Panji,

Our WebView iframe is sandboxed and we do not allow access to Cookies or Web Storage API for security reasons.

The Box Sign embed seems to crash and return a blank page when unsuccesfully trying to access cookies. I can’t say how essential cookies are to the function of their product, but handling this better on their side might resolve the issue.

Maybe you can create a public app with this WebView and send it to them?

Tom

Hi @tbisof ,

Yes I had a chat with @mslootweg and he mentioned the same. We are implementing a workaround where a WebView will be used to generate a simple HTML page with buttons for users to open the secure page in a new separate page outside of VIKTOR.