$scope.chatStru.paySrc = $sce.trustAsResourceUrl('http://xxx.cn/oe/testlogin.jsp?tt=' + tt);
};
1九、使用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
20、 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.
2一、加載遠程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 中。
22 、 ionic 中 彈出鍵盤遮擋住輸入框
在config.xml 中修改全屏爲FALSE並添加 adjustPan (adjstResize沒有成功)
《preference name="Fullscreen" value="False" /》
《preference name="android-windowSoftInputMode" value="adjustPan"/》
2三、ionic監聽滾動
網上的示例xxx.bind('scroll',function(){.....}),很容易將頁面跑死, 換個思路,使用監聽touch
var targetPos = window.screen.availHeight;
$("#scdiv").on("touchend", function () {
if (currpos > 10 && currpos < targetPos / 4) {
$ionicScrollDelegate.$getByHandle('homescroll').scrollTo(0, 0, true);
return false;
} else if (currpos >= targetPos / 4 && currpos <= targetPos - 10) {
$ionicScrollDelegate.$getByHandle('homescroll').scrollTo(0, targetPos - 64, true);
return false;
}
})
當觸摸結束時,判斷當前的位移,來作一些操做。這樣在性能上提升了許多。
$ionicScrollDelegate.$getByHandle 操做的是在html中定義的delegate-handle
如《ion-content id="scdiv" delegate-handle="homescroll"》
2四、 APP開啓檢測網絡並提示開啓
須要三個插件
一、https://github.com/apache/cordova-plugin-network-information
二、https://github.com/apache/cordova-plugin-dialogs
三、https://github.com/deefactorial/Cordova-open-native-settings
而後在APP.JS中,divicesReady中
$ionicPlatform.ready(function () {
if (navigator.connection) {
var tmptypes = navigator.connection.type;
if (tmptypes.toUpperCase().indexOf('NONE') > -1 || tmptypes.toUpperCase().indexOf('UNKNOWN') > -1) {
if (navigator.notification) {
navigator.notification.confirm(
'您的設備未開啓網絡',
function (buttonIndex) {
if (buttonIndex == 1) {
if (cordova.plugins.settings) {
cordova.plugins.settings.openSetting("wifi", function () { console.log("network setting openning"); }, function () { console.log("open network setting failed"); });
}
}
}, // callback to invoke with index of button pressed
'提示', // title
['開啓', '取消'] // buttonLabels
);
}
}
}
})
其中openSettings中可設置如下本地設置
var settingNames = array(
"open",
"accessibility",
"add_account",
"airplane_mode",
"apn",
"application_details",
"application_development",
"application",
"bluetooth",
"captioning",
"cast",
"data_roaming",
"date",
"device_info",
"display",
"dream",
"home",
"input_method",
"input_method_subtype",
"internal_storage",
"locale",
"location_source",
"manage_all_applications",
"manage_applications",
"memory_card",
"network_operator",
"nfcsharing",
"nfc_payment",
"nfc_settings",
"print",
"privacy",
"quick_launch",
"search",
"security",
"settings",
"show_regulatory_info",
"sound",
"sync",
"usage_access",
"user_dictionary",
"voice_input",
"wifi_ip",
"wifi",
"wireless");
其中相關網絡的爲wifi 移動數據開啓未找到。誰試出了是哪一個請告訴我
1三、$sate.go 和 $stateParams 傳參及收參
在 controller1 中使用 $state.go('statename',{id:1}) ;傳遞參數
在 statename 相對應的 controller2 中接收參數
$scope.id = $stateParams.id;
注意,此處必須在router.js 中設置 statename 的參數形式
如.state('statename ', {
url: '/statename ',
params: { 'id': null },
templateUrl: 'templates/Users/statename .html',
controller: 'controller2 '
})
其中params: { 'id': null }, 對應$state傳的參,若不設,則必爲undefined
2五、關於ionic中想底部加一長按鈕,隨頁面滾動位置不變,例如
最初的方案是在 ion-content 外 ion-view 內添加一層
div .....style= ..... position:fixed bottom:0px;之類,但最終發現,在不一樣分辨率下位置並不正確
基本可肯定是由於statusbar等的緣故,仔細看了下ionic.css最終發現,太簡單了
div class="tabs" 就能夠了。
2六、php中取值問題
ionic中用的$http method:post ,params........在PHP中用$_POST取不到值, 改爲 $_Request 就好了。
2七、使用vs2015 release
會提示使用發佈配置進行調試時,Android 程序包必須已簽名。要配置 Android 簽名,請按照 http://go.microsoft.com/fwlink/?LinkID=613579 中的說明操做(該網頁很難打開)
實際須要在項目根目錄的build.json中添加生成的keystore
{
"android": {
"release": {
"keystore": "E:\\Projects\\android.keystore",
"storePassword": "*******",
"alias": "********",
"password": "*******",
"keystoreType": ""
}
}
}
至於生成keystore 請百度,只要有jdk 運行命令就OK
2八、ionic 的滾動優化
在app.js中的config 塊中,加入
$ionicConfigProvider.scrolling.jsScrolling(false);
默認全部的滾動使用native,會比js的滾動快不少,而且很平滑,
但這樣作的話,沒法使用一些效果,如has-bouncing="true"(仿蘋果的一種上下拉顯示背景的彈性效果)
那你能夠在特定的view中,ion-content中加入overflow-scroll="false",則該view保持js滾動
2九、微信支付
支付寶支付很是簡單,文檔也很豐富,微信的相對來講低了不止一個檔次,固然最鬱悶的一件事是
通過了數天的查錯,發現微信的totalfee 竟然是以分爲單位,換句話來講,你傳價格時,只會有整數
若是出現0.01,那必然出錯。
30 ion-header-bar 下老是有條橫線,即便設爲border:none也沒有做用。經查,添加background-size: 100% 0px; 便可解決。