1、No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin. 解决办法 index.html 中添加 《meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"》
并在inoic的controller中加入 window.addEventListener('message', function (e) { var data = e.data; //这里返回的是 logined,相当于传递参数回来。 $scope.modal.hide(); }, false);
你会发现,你即接收到了data,同时又关闭了该modal ,而不需要手动关闭。当然,你可以将 addEventListener() 放到 $scope.openModal 然后在 $scope.closeModal 中 removeEventListener()如$scope.openModal = function () { var tt = new Date().getMilliseconds(); $scope.chatStru.paySrc = $sce.trustAsResourceUrl('http://xxx.cn/oe/testlogin.jsp?tt=' + tt); $scope.modal.show(); window.addEventListener('message', function (e) { var data = e.data; $scope.chatStru.hasToken = true; $scope.modal.hide(); }, false); }; // function to close the modal $scope.closeModal = function () { $scope.modal.hide(); if ($scope.chatStru.hasToken) { window.removeEventListener('message', function () { }, false); } }; 最终可以这样写var handel = function (e) { var data = e.data; if (data.id > 0) { // 传回来的为json{id:1,msg:'aaa'} if (!$scope.chatStru.hasToken) { $scope.chatStru.hasToken = true; } $scope.modal.hide(); } else { $scope.chatStru.hasToken = false; } }; $scope.openModal = function () { var tt = new Date().getMilliseconds(); $scope.chatStru.paySrc = $sce.trustAsResourceUrl('http://xxx.cn/oe/testlogin.jsp?tt=' + tt); $scope.modal.show(); if (!$scope.chatStru.hasToken) { window.addEventListener('message', handel, false); } }; $scope.closeModal = function () { $scope.modal.hide(); if ($scope.chatStru.hasToken) { window.removeEventListener('message', handel, false); } };
7、使用android studio 运行cordova项目 直接使用platfrom目录里的gradle 可以在android studio中直接导入 cordova的项目,但运行模拟器时出现 Cannot reload AVD list: cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration. Error parsing D:\sdkforas\android-sdk-windows\system-images\android-22\android-wear\armeabi-v7a\devices.xml cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration. Error parsing D:\sdkforas\android-sdk-windows\system-images\android-22\android-wear\x86\devices.xml 解决方法 : 用/sdk/tools/lib/devices.xml去替换 system-images\android-22\android-wear\x86\devices.xml和system-images \android-22\android-wear\armeabi-v7a\devices.xml中的devices.xml
8、 android studio 中 gradle 失败 gradle project sync failed.Basic functionality(e.g.editing,debugging) will not work properly. 解决方法:android studio中,点击 tools ->Android->sync project with gradles files.
9、加载远程js或css 出现 Refused to load the script 或 Refused to load the stylesheet because it violates the following .... 例如 index.html中 加载字体 《link href='http://fonts.useso.com/css?family=RobotoDraft:400,500,700,400italic' rel='stylesheet'》 可在index.html添加安全许可 《meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline' http://fonts.useso.com ; script-src 'self' 'unsafe-inline' 'unsafe-eval';"》 直接加根域名即可,另外不要带引号 js 需要添加在 script-src 中。