Syncfusion 控件未在 iOS 本机 UIWebView 上加载

Posted

技术标签:

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

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

我目前面临的问题是 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 报告了该问题?如果您让我知道解决问题所要遵循的步骤,将会非常有帮助。 【参考方案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

【讨论】:

以上是关于Syncfusion 控件未在 iOS 本机 UIWebView 上加载的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在使用 Syncfusion 将它们停靠在 C#.NET 中时看不到某些控件?

FBSDKLoginManager 未在本机 ios 应用程序中打开登录对话框

反应本机选择器未在android上显示

Syncfusion Xamarin ListView,权限滑动问题

Angular syncfusion - 获取折线图选择系列的事件是啥?

在 IOS ANE 上显示本机视图和控件