我已經徹底地遵循http://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx以註冊自定義URL協議,我會爲了使用集成我寫的申請中描述的步驟在C#中使用Pocket Internet Explorer。這個想法是點擊類似於xpto://something/?with=1¶meters=2
的鏈接,並立即打開應用程序。嘗試,在Windows Mobile註冊一個URL模式(自定義協議)6.1
這是一直髮生在我身上:
如果我只註冊協議,它不會在所有的工作。 IE抱怨
Cannot open 'xpto://something/?with=1¶meters=2'. Either it is not signed with a trusted certificate or one of its components cannot be found.
錯誤。如果我也註冊一個
.xpto
文件類型,使用方法http://www.1-script.com/forums/IE-Windows-Mobile-MIME-Handler-What-s-the-solution-article7966--15.htm,我可以讓應用程序打開只有當URL與xpto://
開始,以.xpto
結束,像xpto://somehost/file?parameters=1.xpto
。這是它實際工作的唯一時間。沒有任何錯誤。如果我僅使用上述方法註冊文件類型,則使用類似
http://somehost/test.xpto
的URL可讓IE顯示其下載對話框,而無需直接打開文件。
我可以和2號一起去,但除了是地獄般的討厭之外,我真的很想知道這裏發生了什麼。這是我的第二天,我無法在互聯網上找到任何關於此的答案。我檢查了我的註冊表項數千次,發現沒有錯誤或拼寫錯誤。
下面是我的駕駛室安裝.inf
,關於創建註冊表項。當使用註冊表編輯器探索移動設備時,我發現%InstallDir%
設置得很好,引號也是如此。第一組註冊文件類型,第二組註冊URL協議。
[RegKeys]
"HKCR",".xpto","","0x00000000","xptofile"
"HKCR",".xpto","Content Type","0x00000000","application/x-xpto"
"HKCR","xptofile","","0x00000000","xpto File"
"HKCR","xptofile","EditKeys","0x00010001","65536"
"HKCR","xptofile\Shell","","0x00000000",""
"HKCR","xptofile\Shell\Open","","0x00000000",""
"HKCR","xptofile\Shell\Open\Command","","0x00000000","""%InstallDir%\xpto.exe"" ""%%1"""
"HKCR","xpto","","0x00000000","XPTO Protocol"
"HKCR","xpto","URL Protocol","0x00000000",""
"HKCR","xpto\DefaultIcon","","0x00000000","xpto.exe,0"
"HKCR","xpto\Shell","","0x00000000",""
"HKCR","xpto\Shell\Open","","0x00000000",""
"HKCR","xpto\Shell\Open\Command","","0x00000000","""%InstallDir%\xpto.exe"" ""%%1"""
我的應用程序在手機的內存中。我究竟做錯了什麼?