【问题标题】:Syncfusion controls not loading on iOS native UIWebViewSyncfusion 控件未在 iOS 本机 UIWebView 上加载
【发布时间】:2017-08-18 07:57:04
【问题描述】:

我有一个使用 ASP.NET MVC 构建并在其中使用 Syncfusion 控件的 Web 应用程序。此外,我正在使用本机 WebView 构建 iOS 和 Android 应用程序。

我目前面临的问题是 Syncfusion 控件无法在 iOS 原生 UIWebView 上运行,但在 Android Webview 和其他 Web 浏览器上运行良好。

[Error] TypeError: null is not an object (evalating 't[1]') getBrowserDetails (ej.web.all.min.js:10:2620892) setWidthToColumns (ej.web.all.min.js:10:2713042) _completeAction (ej.web.all.min.js:10:2705521) sendDataRenderingRequest (ej.web.all.min.js:10:2703872) _renderGridContent (ej.web.all.min.js:10:2684094) 渲染 (ej.web.all.min.js:10:2674498) _initGridRender (ej.web.all.min.js:10:2664775) _checkDataBinding (ej.web.all.min.js:10:2631224) _init (ej.web.all.min.js:10:2626321) (匿名函数) (ej.web.all.min.js:10:19759) (匿名函数) (ej.web.all.min.js:10:20802) (匿名函数) (actelion-test.pulselinks.com:995)

仅对具有 SyncFusion 控件的页面抛出上述错误。由于该错误页面未能在 WebView 中加载所需的脚本,并且应用程序无法按预期工作

我当前的 Syncfusion 脚本 ej.web.all.min.js 版本是 14.2。

如果您让我知道为什么会出现错误以及如何解决错误,那将非常有帮助?

感谢高级的帮助。

【问题讨论】:

  • 我会向 SyncFusion 报告这个问题。就我个人而言,在 iOS 上使用 WKWebView 而不是 UIWebVIew,由于 Nitro JS 引擎,它不仅速度快了 2 到 4 倍,而且完全支持 HTML5、手势支持等...
  • 非常感谢您的评论。您是否向 SyncFusion 报告了该问题?如果您让我知道解决问题所要遵循的步骤,将会非常有帮助。

标签: javascript ios xamarin uiwebview syncfusion


【解决方案1】:

我们可以看到您在 IOS 平台中从 Cordova 浏览器启动 Grid 时遇到了一些复杂问题。我们可以通过更改 getBrowserDetails 的功能来克服这个问题,如以下代码示例所示。

<script>

    $(function () { 
        . ..  
        var getBrowsedtls = function () { 
            var b = navigator.userAgent.match(/(firefox|chrome|opera|msie|safari|ipad|iphone|ipod touch|android|)\s?\/?(\d+(.\d+)*)/i); 
            if (!!navigator.userAgent.match(/Trident\/7\./)) 
                return { browser: "msie", version: $.uaMatch(navigator.userAgent).version }; 
            return { browser: b[1].toLowerCase(), version: b[2] }; 
        }; 
        $("#test").ejGrid({ 
            dataSource: values, 
         . . . . 
            showSummary: false, 
            load: function(args){ 
                this.getBrowserDetails = getBrowsedtls; 
            }, 
          .  . . 
        }); 
    });
</script>

我们更改了 Grid 的 load 事件中的方法细节。请参阅以下 API 参考。

https://help.syncfusion.com/api/js/ejgrid#events:load

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2012-11-13
    相关资源
    最近更新 更多