简体   繁体   中英

AngularJS not working in Xamarin Android Webview

I'm trying to load page content to webview, page content reference AngularJS, and Angular Material. When I run it in debug on my computer, it works fine via an Android emulator. But when I install it on my smartphone, it does not work. It would seem it doesn't know the JavaScript libraries. Many thanks for your help.

MainActivity.cs:

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        var webView = FindViewById<WebView>(Resource.Id.webView);
        webView.Settings.JavaScriptEnabled = true;
        //webView.Settings.CacheMode = CacheModes.Normal;
        webView.Settings.DomStorageEnabled = true;
        webView.Settings.SetSupportMultipleWindows(true);
        webView.Settings.JavaScriptCanOpenWindowsAutomatically = true;
        webView.Settings.AllowContentAccess = true;
        webView.Settings.AllowFileAccess = true;
        webView.Settings.AllowFileAccessFromFileURLs = true;
        // webView.SetWebChromeClient(new WebChromeClient());
        webView.SetWebViewClient(new WebViewClient());


        webView.LoadUrl("file:///android_asset/Content/List.html");

    } 

List.html:

<html>
<head>
    <title>Angular JS Directive</title>
    <link href="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.4/angular-material.min.css" rel="stylesheet"></link>
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"></link>
    <style type="text/css">
        .listdemoListControls md-divider {
            margin-top: 10px;
            margin-bottom: 10px;
        }

        .listdemoListControls md-list-item > p, .listdemoListControls md-list-item > .md-list-item-inner > p, .listdemoListControls md-list-item .md-list-item-inner > p, .listdemoListControls md-list-item .md-list-item-inner > .md-list-item-inner > p {
            -webkit-user-select: none;
            /* Chrome all / Safari all */
            -moz-user-select: none;
            /* Firefox all */
            -ms-user-select: none;
            /* IE 10+ */
            user-select: none;
            /* Likely future */
        }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.4/angular-material.min.js"></script>

    <script>

         angular.module('MyForm', ['ngMaterial'])
         .config(function($mdIconProvider) {
          $mdIconProvider
           .iconSet('social', 'img/icons/sets/social-icons.svg', 24)
           .iconSet('device', 'img/icons/sets/device-icons.svg', 24)
           .iconSet('communication', 'img/icons/sets/communication-icons.svg', 24)
           .defaultIconSet('img/icons/sets/core-icons.svg', 24);
         })
         .controller('ListCtrl', function($scope, $mdDialog) {
          $scope.liststudent= [
                  { name: 'Kevin', isgirl: false },
                  { name: 'Sara', isgirl: true},
                  { name: 'Bob', isgirl: false },
                  { name: 'Laura', isgirl: true },
                  { name: 'Peter', isgirl: false }
               ];
         });
    </script>
</head>
<body ng-app="MyForm">
    <md-list ng-cloak="" ng-controller="ListCtrl">
        <md-subheader class="md-no-sticky">Student list</md-subheader>
        <md-list-item ng-repeat="topping in liststudent">
            {{ topping.name }} <br />
            <md-checkbox class="md-secondary" ng-model="topping.isgirl"></md-checkbox>
        </md-list-item>
        <md-divider></md-divider>
        <md-list>

        </md-list>
    </md-list>
</body>
</html> 

Screenshot Running on Mobile:

在此处输入图片说明 Screenshot Running on Computer:

在此处输入图片说明

It may be a network-related issue. Have you tried copying the libraries locally?

PS. I don't have enough reputation to comment yet, so I posted this as an answer. haha

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM