2016-07-29 3 views
6

Я пытаюсь загрузить содержимое страницы в веб-просмотр, ссылку на контент AngularJS и угловой материал. Когда я запускаю его при отладке на своем компьютере, он отлично работает с помощью эмулятора Android. Но когда я устанавливаю его на свой смартфон, он не работает. Казалось бы, он не знает библиотеки JavaScript. Большое спасибо за вашу помощь.AngularJS не работает в Xamarin Android Webview

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> 

Скриншот Запуск на Mobile:

enter image description here Скриншот Запуск на компьютере:

enter image description here

ответ

2

Это может быть проблема сети связаны между собой. Вы пытались скопировать библиотеки локально?

PS. У меня недостаточно репутации, чтобы прокомментировать, поэтому я разместил это как ответ. haha

+0

На моем смартфоне я устанавливаю приложение, запустив файл «loadcontent.loadcontent-Signed.apk», и список учеников - это статические данные. –

+0

Я имел в виду библиотеки javascript, попробовал их загрузить и включил в приложение. получить их из cdn. Вы также можете попробовать загрузить размещенный веб-сайт через веб-просмотр. – Barak

+0

Спасибо! Теперь он отлично работает. –

Смежные вопросы