安安,給虧嗎? (會用「安安」的表示這一定是個老網民了)
安安不給虧不要緊,程式不給debug才麻煩吧
今天就是要講這樣一個故事--一個asp.net core web project從他台搬來新的PC
卻一直debug不行,直接結束,clear & rebuild也一樣,明明build都成功啊.....
安安,給虧嗎? (會用「安安」的表示這一定是個老網民了)
安安不給虧不要緊,程式不給debug才麻煩吧
今天就是要講這樣一個故事--一個asp.net core web project從他台搬來新的PC
卻一直debug不行,直接結束,clear & rebuild也一樣,明明build都成功啊.....
就某32bit data而言 (ex : *pRccCfg)
經初始化0b0
我們把bit 22設定為1 之後 (by instruction : 「 *pRccCfg|= (1<<22) ; 」)
要把bit 24~26設定為0b110,又不能動到之前設定的其他bit值,如何是好?
作法1.一個bit一個bit設定
*pRccCfg!=(1<<25)
*pRccCfg!=(1<<26)
作法二,用罩除的方式,比較不建議請注意"~"的用法
*pRccCfg!=(7<<24); // "OR" the 3 bits by 0b111
*pRccCfg &=~(1<<24);//shift the bit ,then "Complement them",then,use "AND" opeartion,
------------------------------------------------------------------------
同理,只是想清除某幾個bit,也是先 shift "on" bits ,"Complement them",then ,use "AND"operation
ex:要把21&22 bits清除,但不要動到其他bits,請用以下方式
*pAddrRccCfg &=~(0x3<<21);
務必注意!!
~(0x3<<21) 是
11111111100111111111111111111111
而(~0x3<<21) 是
11111111100000000000000000000000
千萬要注意順序
2.Install WinHttpHandler:
Install-Package System.Net.Http.WinHttpHandler
3.Extend WinHttpHandler to add http2.0 support:
public class Http2CustomHandler : WinHttpHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
request.Version = new Version("2.0");
return base.SendAsync(request, cancellationToken);
}
}
4.Pass above handler to the HttpClient constructor
using (var httpClient = new HttpClient(new Http2CustomHandler()))
{
// your custom code
}
---------------------------------(所以就是要用非同步的方式去呼叫了,沒差,用執行緒去做就是了)雖然案主說你就再申請一個apns 憑證嘛.何必這樣大費周章?
可是每一個憑證每年都要換證,就是怕在換證時uer漏接了重要的訊息
這次一做,日後很多個APP都可以共用,也沒有期限問題,長痛不如短痛啊,根本性地解決問題,不亦快哉?
在xamarin ios經常更新,以往的加解密函數現在出現這現象
----code----
var s = new SecRecord(SecKind.GenericPassword) {
ValueData = NSData.FromString(value),
Generic = NSData.FromString(key),
Invisible = true,
CreationDate = NSDate.Now
};
var err = SecKeyChain.Add(s);
------------------
結果err傳回值是「Security.SecStatusCode.MissingEntitlement」
好在別人已經踢到鐵板了,請參考以下的方式修改
https://forums.xamarin.com/discussion/145357/seckeychain-add-return-security-secstatuscode-missingentitlement
注意,其中的
------------
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)你的appBundle ID</string>
</array>
------------------------------------
紅色字$(AppIdentifierPrefix)要去掉,
這是用vs2019 IOS manifest Editor打開加入keychain選項他自己加上去的
要小心--盡信editor不如無editor
加油!!
安卓開發就怕一直在改版的問題一再發生
最近很多開發者都遇到明明在notification的震動機制好好的,怎麼升級後又惦惦了
google了一下是要加上 audioattribute--
---example-----
audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ALARM) //key
.build();
mVibrator.vibrate(pattern, 1, audioAttributes);-----------------來源參考:https://www.jianshu.com/p/3ec9158b2041同場加映有些圓標可以用線上的icon generator來產生
https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html
請多加利用左側功能表中的background color等屬性
https://romannurik.github.io/AndroidAssetStudio/index.html <--這裡還有 notification icon generator可以用哦
(一升級就搞得大家雞飛狗跳的,希望馬斯克的手機系統不會這樣麻煩)
大家加油吧
1.檔案一定是要mp3格式(wav檔不行)
2.檔案請放在「Resources」之下,本例為了跟其他資源區分,放在Resources/raw之下,
(有a1.mp3,a2.mp3....)
3.play sound的語法
A.用MediaPlayer:
var player =MediaPlayer.Create(ApplicationContext,Resource.Raw.a1);
player.Start();
B.用RingToneManager:
var uriString="android.resource://" + your_package_name + "/" +Resource.Raw.a1;
var uri=Android.Net.Uri.Parse(uriString);
Ringtone r = RingtoneManager.GetRingtone(ApplicationContext, uri);
r.Play();
----------------------------------------------------
以上,大家加油了!!
AndroidManifest.xml
----------------------------------
...
...
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
-----------------------------------
in android app Activity c# :
---------------------------------
var wifiManager = (WifiManager)GetSystemService(Context.WifiService);
MulticastLock mLock = wifiManager.CreateMulticastLock("lock");
mLock.Acquire();
using (var udpClient = new UdpClient(你要聆聽的port number)) {
var asyncResult = udpClient.BeginReceive(null, null);
var timeToWait = TimeSpan.FromSeconds(30);//30秒,超過就結束
asyncResult.AsyncWaitHandle.WaitOne(timeToWait);
if (asyncResult.IsCompleted) {
IPEndPoint remoteEP = null;
byte[] receivedData = udpClient.EndReceive(asyncResult, ref remoteEP);
string msg = System.Text.Encoding.UTF8.GetString(receivedData);
Console.WriteLine($"get end point message:{msg}");
mLock.Release();
} else {
mLock.Release();
Console.WriteLine("UDP failed!!!!!!");
}
}
--------------------------------
參考 : 這裡
以上,希望對你有幫助
一如文件「Extjs4 ,如何偵測是否點在pop up window 的外面」
一樣,可以考慮在window的mask再加工
如果是全域設定,就直接改 .x-mask css就可以了
但是如果是各別的window (彈吧七彩霓虹window )
就要在show / close事件中加減cls了
----css --------------------------
.seemsNoWinMask.x-mask {
filter: alpha(opacity=0);
opacity: .0;
background:white !important;
}
-----ext js 4------------------------------------
let win = Ext.create('Ext.window.Window', {
listeners: {
show: function (win) {
if (this.modal) {
var dom = Ext.dom.Query.select('.x-mask');
var el = Ext.get(dom[0]);
el.addCls('seemsNoWinMask');
}
},
close: function (win) {
if (this.modal) {
var dom = Ext.dom.Query.select('.x-mask');
var el = Ext.get(dom[0]);
el.removeCls('seemsNoWinMask');
}
}
},
......
....
-----------------------------------------------------
extjs 6.2
--------------------------------------------
listeners: {
show: function (win) {
if (this.modal) {
var dom = Ext.dom.Query.select('.x-mask');
for (var i = 0; i < dom.length; i++) {
Ext.get(dom[i]).addCls('seemsNoWinMask');
}
}
},
close: function (win) {
if (me.modal) {
var dom = Ext.dom.Query.select('.x-mask');
for (var i = 0; i < dom.length; i++) {
Ext.get(dom[i]).removeCls('seemsNoWinMask');
}
}
}
}
...
...
--------------------------------------
以上
(2020了,我還在寫extjs .....)
之所以會想用這個去邊的textfield,
是因為在某次實作時,要實作一個很類似chrome的search textfield,又內含清空及搜尋的buttons
但又不想繼承field類別(好啦,我承認懶得試這方式),所以要用組裝的方式來做這東西
要把border去除一下,
(以下是extjs 6.2 )
----先準備一個css----------------------
.x-form-textfield-noborder .x-form-trigger-wrap-default {
border-width: 0px;
border-style: solid;
border-color: #d0d0d0;
}
------------------------------------------
那麼,那個要套用css的texfield就是會像以下的例子
......................................
//...外面包他的container
{
xtype: 'container',
width: 170,
height: 25,
margin: '20 0 0 10',
//textfield去邊,要用外層的container做框來包textfield & buttons.
style: {
borderColor: 'lightgray',
borderStyle: 'solid',
borderWidth: '1px'
},
layout: {
align: 'stretch',
type: 'hbox'
},
items: [
//-------------------重點來了---------------------------
{
margin: '20 0 0 20',
xtype: 'textfield',
cls: 'x-form-textfield-noborder',
}, //之下,是兩個button
{
xtype: 'button',
style: {
background: 'white',
borderRadius: '0px',
borderStyle: 'solid',
marginRight: '3px',
marginTop: '1px',
marginBottom: '1px',
borderColor: '#d0d0d0;',
borderWidth: '0px'
},
height: 16,
width: 16,
icon: './images/icon2del.gif'
},
{
xtype: 'button',
style: {
background: 'white',
borderRadius: '0px',
borderStyle: 'solid',
marginLeft: '3px',
marginTop: '1px',
marginBottom: '1px',
borderColor: '#d0d0d0;',
borderWidth: '0px'
},
height: 18,
minWidth:20,
icon:'./images/search18x18.png'
}
]
}
--------------------------------
當然,如果這個欄位只是display only的話,那就用displayfield
尤其是在layout type是table的情況之下,xtype:'label'通常怎麼喬margin & padding都沒用的情況之下
那就用displayfield或是這個去框的textfield吧
參考:
https://blog.csdn.net/onightfalls/article/details/78601091
https://stackoverflow.com/questions/29987504/extjs-displayfield-with-same-style-as-textfield
以上