2009-11-22 27 views
17

Điều này là mới đối với tôi với tư cách là nhà phát triển máy tính để bàn.Trang web Apple iTunes khởi chạy ứng dụng iTunes trên máy tính của tôi như thế nào khi tôi nhấp vào nút "Khởi chạy iTunes" màu lam?

Nếu tôi có thể tìm hiểu cách thực hiện điều này, nó có thể liên quan đến một số nghiên cứu tôi đang làm, cụ thể là cách di chuyển ứng dụng máy tính để bàn dày sang triển khai web.

Càng có nhiều hình thức định hướng và đồ họa nhẹ hơn tôi có thể tìm ra, nhưng đồ họa 3D nặng vẫn đòi hỏi một số dạng ứng dụng không phải trình duyệt.

Gần như tôi có thể xác định, iTunes cài đặt một số hình thức xử lý giao thức mới trên máy của tôi, tương ứng với "itms", thay cho "http".

Điều này thật tuyệt vời và bí ẩn đối với tôi, gần như huyền diệu. Bất kỳ trợ giúp hoặc gợi ý nào cho các tài liệu và/hoặc tài liệu đọc bổ sung sẽ rất được hoan nghênh.

+0

Mà nền tảng? – arul

+0

Windows cho hiện tại, nhưng tôi có ý tưởng ... – kmontgom

Trả lời

14

Bạn có thể đăng ký "xử lý giao thức" với một số trình duyệt. Tôi nghĩ rằng có một nơi trong hệ điều hành, nơi bạn có thể regsiter của riêng bạn.

Xem

Tạo mới trong firefox: http://ajaxian.com/archives/creating-custom-protocol-handlers-with-html-5-and-firefox

trong Safari: http://discussions.apple.com/thread.jspa?threadID=1280989

đặc biệt "xử lý giao thức điện thoại di động" được sử dụng rộng rãi trong iPhone/iPod để khởi động quay số điện thoại, gửi email, Google Maps và vân vân ... http://www.iphonedevfaq.com/index.php?title=Protocols

Dưới đây là một ví dụ làm thế nào để cấu hình lại handler mailto: giao thức để kích hoạt gmail chứ không phải là một bên ngoài ứng dụng thư khách: http://lifehacker.com/392287/set-firefox-3-to-launch-gmail-for-mailto-links

+1

Cảm ơn! Tôi đang nghiên cứu các liên kết ngay bây giờ. – kmontgom

+0

Nếu bạn muốn thêm trình xử lý giao thức của riêng mình, bạn phải định cấu hình trình duyệt web của mình - và có thể là hệ điều hành/giao diện người dùng (tôi đoán đó là cách thực hiện với IE & Safari). để cho phép mọi javascript cũ tải xuống khỏi web để định cấu hình lại trình duyệt của bạn để kích hoạt ứng dụng trên máy tính để bàn của bạn. – daf

+0

trong chrome: http://updates.html5rocks.com/2011/06/Registering-a-custom-protocol-handler –

7

Đơn giản.

<a href="itunes:///">Open iTunes</a> 

Hầu hết các ứng dụng hiện-một-ngày có "URL Schemes Custom" Ví dụ - Coda (http://panic.com/coda) bạn có thể thêm đoạn mã qua:

<a href="codaclips:///<<**Title:NAME**>>blabla">Add Clip</a> 
+0

Cảm ơn thông tin. Bây giờ tôi phải nghiên cứu kỹ các trình xử lý giao thức và cách tạo chúng. Bất kỳ đề xuất? – kmontgom

+0

cho ứng dụng của riêng bạn? – tarnfeld

+0

Có. Như tôi đã nói, nhiều chức năng có thể được tích hợp trực tiếp trong trình duyệt thông qua HTML/AJAX hoặc Flex hoặc Silverlight. Đồ họa nặng của nó có thể không thể. Trong trường hợp này, tôi muốn khởi chạy một ứng dụng riêng biệt được cài đặt sẵn, đặc biệt xử lý các công cụ 3D. Bởi nhiệm vụ nặng nề, tôi có nghĩa là hàng chục triệu đỉnh, và hàng triệu quads/tam giác. – kmontgom

1

Trong Windows, đây được gọi là Trình xử lý giao thức có thể xử lý. This article on CodeProject cho biết cách triển khai trình xử lý giao thức có thể cắm được trên Windows. Lưu ý, điều này có liên quan nhiều hơn sau đó chỉ cần đăng ký một giao thức mới trong sổ đăng ký, chẳng hạn như myprotocol: // và có nó bắt đầu một exe cụ thể bất cứ khi nào một neo myprotocol: // được nhấp vào.

Nó thực sự cho phép ứng dụng của bạn nhận và xử lý yêu cầu cũng như tạo dữ liệu phản hồi động. Nếu giao thức của bạn cũng sẽ được gọi là lập trình, điều này thường quan trọng.

Điều này có thể quá mức cần thiết cho trường hợp của bạn, tuy nhiên, điều này rất hữu ích để biết.

0

Chỉ cần theo dõi cho những người đã trả lời.

Hóa ra tình huống có phần phức tạp. Mặc dù about: config có sẵn cho FireFox, làm cho các mục thích hợp không hoạt động.

Liên kết này: http://support.mozilla.com/tiki-view_forum_thread.php?locale=fr&forumId=1&comments_parentId=74068 mô tả sự cố cho Linux, nhưng tôi có thể xác minh rằng các sự cố tương tự cũng xảy ra trong Windows.

Để làm công việc này trong môi trường Windows, tôi đã phải tạo ra một file .REG, trong đó có các thông tin thích hợp, theo liên kết này: http://kb.mozillazine.org/Register_protocol#Windows

Bây giờ nó hoạt động!

Cảm ơn tất cả các câu trả lời.

1

Cách dễ nhất là đăng ký loại tệp cho ứng dụng của bạn (còn gọi là Tệp Hiệp hội), ví dụ ".myp" và khi người dùng nhấn "start myapp" trên trang web, tệp tải xuống tệp "startapp.myp".

Sau đó, Windows sẽ xem xét phần mở rộng của tệp và thấy rằng tệp được đăng ký vào ứng dụng của bạn và bắt đầu ứng dụng của bạn với tệp dưới dạng tham số lệnh. Sau đó, ứng dụng của bạn có thể đọc tệp và thực hiện công cụ tùy thuộc vào nội dung.

Dưới đây là code để đăng ký một filetype để ứng dụng của bạn thực hiện trong VB.Net:
(Ví dụ được lấy từ http://www.developerfusion.com/article/36/file-assocation/2/ nhưng sao chép ở đây vì lý do dai dẳng, kiểm tra trang web ban đầu để lấy ý kiến)

'// Registry windows api calls 
Private Declare Function RegCreateKey& Lib "advapi32.DLL" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, ByVal lphKey As Long) 
Private Declare Function RegSetValue& Lib "advapi32.DLL" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpszSubKey As String, ByVal fdwType As Long, ByVal lpszValue As String, ByVal dwLength As Long) 
'// Required constants 
Private Const HKEY_CLASSES_ROOT = &H80000000 
Private Const MAX_PATH = 256& 
Private Const REG_SZ = 1 

'// procedure you call to associate the tmg extension with your program. 
Private Sub MakeDefault() 
    Dim sKeyName As String '// Holds Key Name in registry. 
    Dim sKeyValue As String '// Holds Key Value in registry. 
    Dim ret As Long '// Holds error status if any from API calls. 
    Dim lphKey As Long '// Holds created key handle from RegCreateKey. 

    '// This creates a Root entry called "TextMagic" 
    sKeyName = "TextMagic" '// Application Name 
    sKeyValue = "TextMagic Document" '// File Description 
    ret = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey) 
    ret = RegSetValue&(lphKey&, Empty, REG_SZ, sKeyValue, 0&) 

    '// This creates a Root entry called .tmg associated with "TextMagic". 
    sKeyName = ".tmg" '// File Extension 
    sKeyValue = "TextMagic" '// Application Name 
    ret = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey) 

    ret = RegSetValue&(lphKey, Empty, REG_SZ, sKeyValue, 0&) 

    '//This sets the command line for "TextMagic". 
    sKeyName = "TextMagic" '// Application Name 
    If Right$(App.Path, 1) = "\" Then 
     sKeyValue = App.Path & App.EXEName & ".exe %1" '// Application Path 
    Else 
     sKeyValue = App.Path & "\" & App.EXEName & ".exe %1" '// Application Path 
    End If 
    ret = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey) 
    ret = RegSetValue&(lphKey, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH) 
End Sub 

Private Sub Form_Load() 
    '// ensure we only register once. When debugging etc, remove the SaveSetting line, so your program will 
    '// always attempt to register the file extension 
    If GetSetting(App.Title, "Settings", "RegisteredFile", 0) = 0 Then 
     '// associate tmg extension with this app 
     MakeDefault() 
     SaveSetting(App.Title, "Settings", "RegisteredFile", 1) 
    End If 
    '// check command line argument: 
    If Command$ <> Empty Then 
     '// we have a file to open 
     '// Fetch the file name from Command$ and then read the file if needed. 
    End If 

End Sub 
Các vấn đề liên quan