• / 13
  • 下載費用:30 金幣  

第三方應用腳本能力.pdf

摘要
申請專利號:

CN201480004248.3

申請日:

2014.02.26

公開號:

CN104903860A

公開日:

2015.09.09

當前法律狀態:

授權

有效性:

有權

法律詳情: 專利權人的姓名或者名稱、地址的變更IPC(主分類):G06F 9/455變更事項:專利權人變更前:谷歌公司變更后:谷歌有限責任公司變更事項:地址變更前:美國加利福尼亞州變更后:美國加利福尼亞州|||授權|||實質審查的生效IPC(主分類):G06F 9/455申請日:20140226|||公開
IPC分類號: G06F9/455 主分類號: G06F9/455
申請人: 谷歌公司
發明人: C·戈德費德
地址: 美國加利福尼亞州
優先權: 13/779,599 2013.02.27 US
專利代理機構: 北京市金杜律師事務所11256 代理人: 李輝
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201480004248.3

授權公告號:

|||||||||

法律狀態公告日:

2018.03.16|||2018.01.16|||2015.10.07|||2015.09.09

法律狀態類型:

專利權人的姓名或者名稱、地址的變更|||授權|||實質審查的生效|||公開

摘要

公開了一種用于允許第三方腳本開發者創建能夠被安全地并入軟件應用中的安全腳本的系統和方法。該系統可以提供用于使得客戶端/服務器安全腳本環境能夠被添加至托管的軟件應用開發環境的流程和機制,使得第三方腳本能夠被添加至軟件應用而應用開發者不必擔心保護其應用免受惡意腳本的影響。該腳本環境可以允許應用可由非受信的第三方腳本開發者安全地編寫腳本。

權利要求書

權利要求書
1.  一種用于允許軟件應用開發者將第三方腳本并入所述軟件應用開發者的軟件應用中的系統,所述系統包括:
腳本環境,所述腳本環境提供以下各項中的至少一項:服務器上的認證、訪問控制、對客戶端側腳本的限制以及腳本的管理;
一個或多個處理設備;以及
存儲指令的一個或多個存儲設備,當所述指令由所述一個或多個處理設備執行時,使得所述一個或多個處理設備允許軟件應用開發者:
創建服務器側web服務,所述服務器側web服務允許第三方腳本客戶端和應用服務器之間的通信(301);
創建客戶端側應用編程接口,所述客戶端側應用編程接口暴露所述應用的功能和資源的子集(303);
允許所述第三方腳本經由所述web服務來訪問所述應用的服務器(307);
允許所述第三方腳本使用所述客戶端側應用編程接口來訪問所述應用的功能和資源(305);以及
向終端用戶提供針對所述第三方腳本的訪問(309)。

2.  根據權利要求1所述的系統,進一步包括允許第三方腳本定義并注冊觸發器,所述觸發器當事件在所述應用中發生時發起所述第三方腳本中的動作。

3.  根據權利要求1所述的系統,進一步包括允許軟件應用開發者具有將所述web服務包裝到能夠被包括在第三方腳本中的腳本庫中的能力。

4.  根據權利要求1所述的系統,進一步包括允許軟件應用開發者具有通過集成開發環境將第三方腳本加載到所述應用中的能力。

5.  根據權利要求4所述的系統,其中所述集成開發環境創建與軟件應用相關聯的品牌。

6.  根據權利要求1所述的系統,進一步包括向終端用戶提供可用于安裝的應用專屬的腳本的列表。

7.  根據權利要求1所述的系統,進一步包括向終端用戶提供當前所安裝的腳本的控制面板,用戶可以在所述控制面板處管理所安裝的腳本。

8.  一種用于允許軟件應用開發者將第三方腳本并入所述軟件應用開發者的軟件應用中的計算機實施的方法,所述方法包括:
創建服務器側web服務,所述服務器側web服務允許第三方腳本客戶端和應用服務器之間的通信(301);
創建客戶端側應用編程接口,所述客戶端側應用編程接口暴露所述應用的功能和資源的子集(303);
允許所述第三方腳本經由所述web服務來訪問所述應用的服務器(307);
允許所述第三方腳本使用所述客戶端側應用編程接口來訪問所述應用的功能和資源(305);以及
向終端用戶提供針對所述第三方腳本的訪問(309)。

9.  根據權利要求8所述的計算機實施的方法,進一步包括允許第三方腳本定義并注冊觸發器,所述觸發器當事件在所述應用中發生時發起所述第三方腳本中的動作。

10.  根據權利要求8所述的計算機實施的方法,進一步包括允許軟件應用開發者具有將所述web服務包裝到能夠被包括在第三方腳本中的腳本庫中的能力。

11.  根據權利要求8所述的計算機實施的方法,進一步包括允許軟件應用開發者具有通過集成開發環境將第三方腳本加載到所述應用中的能力。

12.  根據權利要求11所述的計算機實施的方法,其中所述集成開發環境創建與軟件應用相關聯的品牌。

13.  根據權利要求8所述的計算機實施的方法,進一步包括向終端用戶提供可用于安裝的應用專屬的腳本的列表。

說明書

說明書第三方應用腳本能力
背景技術
軟件應用經常遵循具體需求進行開發以提供某些能力。雖然軟件應用開發者可以為終端用戶提供有價值的功能,但是第三方腳本開發者可以通過提供改變或擴展軟件應用功能的擴展、自動化、插件或類似代碼來提升該基本功能,使得該應用更為用戶友好。例如,web應用開發者可以創建用于發送和接收電子郵件的軟件應用。該web應用可以包括用于找出并標記電子郵件的功能。該應用也可以對任意一個終端用戶的電子郵件賬戶的容量大小具有限制。然而,該web應用可能并未向終端用戶提供找出高于某個大小的電子郵件消息而使得他們能夠刪除大的電子郵件消息以釋放其電子郵件賬戶中的空間的能力。第三方腳本開發者可以編寫插件,當該插件被添加至該電子郵件應用時,能夠找出并標記高于某個大小的所有電子郵件消息。終端用戶可以將該第三方開發者的插件添加至其瀏覽器并且運行該插件從而輕易地找到大的電子郵件消息,使得這些消息能夠在終端用戶的電子郵件賬戶達到容量大小時被刪除。
即使第三方腳本能夠改善終端用戶體驗,但是非常少的軟件應用開發者允許非受信的第三方腳本被添加至他們的web應用,這是因為添加第三方功能使得web應用開發者難以保持web應用的安全并且也使得終端用戶對該web應用的體驗不一致。
如圖1所示,通常的第三方腳本(105)最經常地工作在web瀏覽器級別(101a,101b)而并非是軟件應用的組成部分。一種值得關注的瀏覽器級別的第三方腳本的示例是插件,它是能夠對web應用的功能進行定制的軟件組件。瀏覽器級別的腳本由于它們依賴于瀏覽器而存在問題。如果終端用戶針對一個瀏覽器(101a)中的應用(103a)安裝了諸如圖1所示的腳本(105),但是隨后更改了其用來訪問相同應用的不同實例(103b)的瀏覽器(101b),則該終端用戶必須在 新的瀏覽器中安裝該腳本以便針對該應用獲得該腳本的功能。如圖1所示,由于該腳本并未被安裝在瀏覽器2(101b)中,所以該應用的腳本105的功能擴展在瀏覽器1(101a)中可用而在瀏覽器2(101b)中不可用。
應當具有一種允許第三方腳本與主機應用緊密交互同時仍然保持安全的系統。該系統應當允許軟件應用開發者安全地向其托管的應用添加第三方腳本功能,使得無論終端用戶如何訪問該應用第三方腳本都能夠與該終端用戶相關聯。
發明內容
本說明書總體上描述了涉及第三方應用腳本能力(scriptability)的技術,并且更具體地,涉及用于允許第三方腳本開發者安全地向軟件應用添加功能的方法和系統。
總體上,本說明書中所描述的主題的一個方面可以以一種用于允許軟件應用開發者將第三方腳本并入其軟件應用中的系統和方法來體現。示例性系統包括腳本環境,該腳本環境提供以下各項中的至少一項:服務器上的認證,訪問控制,對客戶端側腳本的限制以及腳本的管理。該系統可以附加地包括一個或多個處理設備以及存儲指令的一個或多個存儲設備,該指令用于創建服務器側web服務,該服務器側web服務允許第三方腳本客戶端和應用服務器之間的通信;創建客戶端側應用編程接口,該客戶端側應用編程接口暴露應用的功能和資源的子集;允許第三方腳本經由該web服務來訪問應用的服務器;允許該第三方腳本使用該客戶端側應用編程接口來訪問應用的功能和資源;以及向終端用戶提供針對該第三方腳本的訪問。第二示例性系統可以包括如以上所描述的腳本環境,一個或多個處理設備以及一個或多個存儲指令的存儲設備,該指令允許第三方腳本開發者:從軟件應用接收應用編程接口;從軟件應用接收web服務;使用該應用編程接口和web服務來創建改變該軟件應用的功能的腳本;以及允許終端用戶訪問該腳本。
這些和其它實施例可以可選地包括以下特征中的一個或多個特征:第三方腳本可以定義并注冊觸發器,該觸發器當事件在應用中發生時發起該第三方腳本中的動作;軟件應用開發者可以具有將web服務包裝到能夠被包括在第三方腳本中的腳本庫中的能力;軟件應用開發者可以能夠通過集成開發環境將第三方腳本加載到應用中;該集成開發環境可以創建與軟件應用相關聯的品牌;可以向終端用戶提供可用于安裝的應用專屬的腳本的列表(gallery);并且可以向終端用戶提供當前所安裝的腳本的控制面板,用戶可以在此管理所安裝的腳本。
本發明的一個或多個實施例的細節在附圖和以下描述中被闡述,附圖僅通過說明的方式給出。本發明的其它特征、方面和優勢將從該描述、附圖和權利要求而變得顯而易見。同樣的附圖標號和標記在各圖中指示同樣的元素。
附圖說明
圖1是圖示向web應用添加第三方腳本的常見實施例的框圖。
圖2是圖示用于向web應用添加第三方腳本的示例性實施例的框圖。
圖3是用于向web應用添加第三方腳本的示例性方法的流程圖。
圖4是圖示示例性計算設備的框圖。
具體實施方式
根據示例性實施例,如圖2所示,可以存在綜合的類似插件的系統,該系統允許軟件應用開發者將第三方腳本并入其應用中。該系統可以提供流程和機制用于使得安全腳本環境能夠被添加至托管的軟件應用開發環境,使得第三方腳本能夠被并入軟件應用中,而應用開發者不必擔心保護其應用免受惡意腳本的影響。該腳本環境可以允許應用可由非受信的第三方腳本開發者安全地編寫腳本。示例性的腳本環境可以使用Caja用于安全腳本。Caja是提供具有對象能力的安全 性的javascript的子集。該技術提供了JavaScript沙箱,其能夠改變用戶的腳本并且通過去除危險的方法調用而對它們進行凈化(sanitize)。如圖2所示,應用服務器(109)在應用級別并入第三方腳本(105),因此腳本插件獨立于用于訪問應用實例(103a,103b)的瀏覽器(101a,101b)。因此,無論用戶利用其訪問應用的瀏覽器如何,登錄到應用中的用戶將具有伴隨該應用的相同用戶體驗。
示例性系統可以包括客戶端和服務器兩者的腳本組件、腳本托管、web集成開發環境(IDE),以及查看用于給定應用的所有腳本的方式。
在一些實施例中,示例性系統包括客戶端/服務器安全腳本環境。該腳本環境可以提供以下特征中的一些或全部特征:(1)云集成開發環境,(2)服務器側腳本運行時,(3)腳本托管和庫,(3)事件觸發器,(4)賬戶管理,(5)內建的應用編程接口(API),(6)開放授權(oAuth)集成,(7)安全客戶端,(8)能夠被授予不能對軟件應用的終端用戶產生惡意攻擊的有限的瀏覽器內的權限的腳本,(9)針對具體應用所開發的用于查看所有腳本的每應用列表。腳本環境還可以提供服務器上的認證、訪問控制以及對于客戶端側擴展的限制。此外,該腳本環境可以管理其它細節,包括托管、服務器API以及賬戶管理。通常,示例性系統應當理解web應用的需求并且定義web應用用于與腳本環境進行交互以便用于該腳本環境與該web應用交互的方法。
示例性實施例可以針對不同的預期用戶群組而提供不同的視圖和功能。可能存在用于軟件應用開發者的視圖、用于第三方腳本開發者的視圖以及用于終端用戶的視圖。
軟件應用開發者
使用示例性系統,軟件應用開發者可以針對終端用戶所安裝的腳本查詢腳本環境,經由沙箱技術將所安裝的腳本加載到應用的客戶端上,對所加載的腳本進行沙箱操作,并且允許所加載的腳本使用被創建為用于與第三方腳本進行交互的web服務與應用的服務器進行交 互。
示例性實施例可以為軟件應用開發者提供通過集成開發環境(IDE)加載腳本的方式。該開發環境可以被預先加載有用于軟件應用的web服務。IDE可以能夠理解哪個應用打開了IDE。該應用能夠傳遞有關該應用在其打開IDE時可能需要的具體特征的信息。例如,該應用可以發送應當在IDE的代碼編輯器中自動完成的應用專屬的API的列表。IDE可以是一般性的并且并不了解任何特定應用,同時仍然允許任意應用按照需求對IDE進行定制。該IDE還可以具有創建與軟件應用相關聯的品牌的方式。例如,應用的標志和顏色方案可以被留給IDE。
在一些實施例中,示例性系統可以向軟件應用開發者提供針對其應用編寫客戶端側API的能力。客戶端側API可以包括由第三方腳本開發者可訪問的特定軟件應用的客戶端側代碼和DOM。可能存在標準方法以及用于添加其它方法的模板/風格引導。應用功能和資源可以通過應用的客戶端側API來訪問。API定義了哪些應用功能和資源可用于第三方開發者。例如,在電子數據表應用中,可以編寫腳本以每當用戶選擇包含公式的單元格時顯示側邊欄。為了編寫腳本,該電子數據表應用可以提供包含用于返回當前所選擇的單元格的方法的API。所返回的單元格可以具有用于確定該單元格是否為公式并且提供該單元格的數值的屬性。該電子數據表API還可以包含用于顯示側邊欄的方法。應用想要暴露給第三方腳本的方法和屬性應當在該應用內的API內進行定義。
示例性系統還可以向軟件應用開發者提供用于編寫可以由第三方腳本訪問以便與應用的服務器進行通信的服務器側web服務的工具。這些web服務可以使用通過腳本環境提供給軟件應用開發者的業已存在的API進行編寫。這些API可以包括REST和SOAP API。備選地,軟件應用開發者可以構建庫,其可以被包括在由第三方腳本開發者開發的腳本中。軟件應用開發者可以創建RESTful服務,其支持oAuth認證并且能夠被包裝到腳本庫中。
示例性實施例可以附加地向軟件應用開發者提供用于針對其應用定義并注冊觸發器的方式。觸發器是在事件發生時發起動作的機制。觸發器可以是應用專屬的并且由應用開發者所選擇。示例的觸發器包括onEdit、onOpen和onSave。“onEdit”觸發器將在應用中發生編輯時開啟。“onOpen”觸發器將在應用中打開某些內容時發起動作。“onSave”觸發器將在應用內保存某些內容時開啟。應用開發者可以指定可以被用作能夠針對其編寫腳本的觸發事件的事件名稱的列表。腳本隨后可以利用代理服務來針對具體事件注冊觸發器,使得該腳本在特定事件發生時被通知。該事件可以被記錄,并且該事件以及可能與該事件相關聯的可選有效載荷可以被提供給該代理服務。該代理服務可以將與觸發事件相關的消息中繼至監聽特定事件觸發器以便開啟的腳本。該代理服務可以是REST服務并且有效載荷可以以JSON來編寫。
在一些實施例中,可以提供前端腳本語言代碼以便在每終端用戶基礎上將所安裝的腳本加載到應用中。例如,前端腳本語言可以是JavaScript。每個終端用戶可能想要包括針對具體應用所編寫的腳本的不同子集。所提供的代碼可以找出與該應用相關聯的所有腳本并且加載當前訪問該應用的終端用戶已經安裝的腳本。
除了促進軟件應用和第三方腳本之間的客戶端/服務器通信之外,示例性實施例可以向軟件應用開發者提供鏈接至可分幀(frameable)web商店視圖的URL,使得軟件開發者能夠在其應用出現在web商店中時對其應用進行查看。應用可以是在web商店中可訪問的,使得終端用戶可以下載并使用該應用。軟件應用開發者的web商店視圖可以包括用于針對具體用戶顯示當前所安裝的腳本以及示出能夠被安裝的腳本的標簽。
第三方腳本開發者
示例性系統可以向第三方腳本開發者提供每個應用的服務器側web服務,其知道該應用的上下文。如以上所討論的,當腳本在示例性服務器上運行時,該腳本有權訪問服務器側腳本環境所提供的API。 應用的上下文包括在應用的實例內共享的數據。該數據能夠通過來自不同的用戶的所有請求而獲取。如以上所解釋的,應用的web服務由應用開發者編寫并且使用腳本環境被提供給第三方腳本開發者。在一些實施例中,第三方腳本開發者可以有權訪問針對應用的客戶端側API,腳本開發者能夠使用該API來訪問來自應用的功能和資源以便編寫用于該應用的腳本。如以上所討論的,客戶端側API向第三方腳本開發者提供了與應用開發者選擇授予的一樣多的針對軟件應用的訪問。第三方腳本開發者還可以有權訪問在應用中發生某些事件時開啟的應用事件觸發器。示例性實施例可以提供同步的客戶端API,用于腳本以操控或控制應用的用戶界面中的非連續區域的能力,以及以瀏覽器可以將用戶事件識別為針對用戶動作的直接響應的方式來對諸如按鈕點擊之類的用戶事件作出響應的腳本能力。
示例性系統還可以向腳本開發者提供集成開發環境,該集成開發環境可以具有預先加載的指定的應用web服務。該腳本開發環境可以經由腳本開發者針對其編寫腳本的應用進行訪問。此外,示例性系統可以提供web商店整合,這允許腳本開發者指定腳本開發者已經針對其編寫了腳本的應用。
終端用戶
已經支持第三方腳本的軟件應用的終端用戶可以看到可用于安裝的應用專屬的腳本的列表。終端用戶還可以具有當前所安裝腳本的控制面板,在此用戶能夠以每個應用的基礎上管理其所安裝的腳本。
根據示例性實施例,一種示例性方法開始于運行已經針對其開發了第三方腳本的軟件應用。該軟件應用可以使用終端用戶的認證憑證來被運行并且可以運行代碼以獲得認證的終端用戶已經安裝的、用于該應用的第三方腳本。可以針對每個腳本返回URL。該腳本隨后可以被加載并且與相關聯的web應用一起被運行。一些腳本可以依賴于觸發器以便執行,但是將監聽與該web應用相關聯的觸發器。
如以上所討論的以及如圖3所示,根據另一個實施例,示例性系統可以使得web應用開發者能夠創建暴露托管的web應用的功能和 資源的服務器側web服務(301)。該系統還可以允許web應用開發者創建暴露web的應用功能和資源中的一些應用功能和資源的客戶端側應用編程接口(API)(303)。web應用開發者隨后可以許可經由應用編程接口針對第三方腳本的可配置訪問,使得該腳本可以與該web應用進行交互(305)。第三方腳本隨后可以被允許經由由web應用開發者提供的web服務來訪問該web應用的服務器(307)。第三方腳本開發者可以開發使用客戶端側API和web服務來與web應用進行交互的腳本。終端用戶隨后可以被提供以針對第三方腳本的訪問并且可以選擇將該腳本并入其web應用簡檔中(309)。
圖4是示例性計算機(400)的高層級框圖,該示例性計算機被配置用于允許第三方腳本開發者在托管的web應用執行環境中使用基于瀏覽器的腳本編輯器向軟件應用安全地添加功能并且可以被用來實施本文中所描述的系統、裝置和方法。在非常基礎的配置形式(401)中,計算設備(400)通常包括一個或多個處理器(410)和系統存儲器(420)。存儲器總線(430)能夠被用于在處理器(410)和系統存儲器(420)之間通信。
根據所期望的配置,處理器(410)可以是任意類型,包括但不限于微處理器(μP)、微控制器(μC)、數字信號處理器(DSP)或者它們的任意組合。處理器(410)可以包括諸如一級高速緩存(411)和二級高速緩存(412)的一個或多個層級的高速緩存,處理器核心(413)以及寄存器(414)。處理器核心(413)可以包括算術邏輯單元(ALU)、浮點單元(FPU)、數字信號處理核心(DSP核心)或者它們的任意組合。存儲器控制器(416)也可以與處理器(410)一起被使用,或者在一些實施方式中,存儲器控制器(415)可以是處理器(410)的內部部件。
根據所期望的配置,系統存儲器(420)可以是任意類型,包括但并不局限于易失性存儲器(諸如RAM)、非易失性存儲器(諸如ROM、閃存等)或者它們的任意組合。系統存儲器(420)通常包括操作系統(421)、一個或多個應用(422)以及程序數據(424)。 應用(422)可以包括用于在托管的web應用執行環境中、在web應用和第三方腳本之間進行安全交互的方法。程序數據(424)包括存儲指令,當該存儲指令被一個或多個處理設備執行時,實施用于允許第三方腳本開發者向軟件應用(423)安全地添加功能的系統和方法。在一些實施例中,應用(422)能夠被配置為在操作系統(421)上利用程序數據(424)進行操作。
計算設備(400)可以具有附加的特征或功能,以及用于促進基礎配置(401)與任意所需的設備和接口之間的通信的附加的接口。
系統存儲器(420)是計算機存儲介質的示例。計算機存儲介質包括但不限于RAM、ROM、EEPROM、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光學存儲、磁性卡盒、磁帶、磁盤存儲或其它磁性存儲設備,或者能夠被用來存儲所期望的信息并且能夠由計算設備400進行訪問的任何其它介質。任何這樣的計算機存儲介質可以是設備(400)的一部分。
計算設備(400)可以被實施為小形式因子的便攜式(或移動)電子設備的一部分,上述設備諸如蜂窩電話、個人數字助理(PDA)、個人媒體播放器設備、無線web手表設備、個人頭戴式耳機設備、應用專屬的設備,或者包括以上功能中的任意功能的混合設備。計算設備(400)還可以被實施為包括膝上型計算機和非膝上型計算機配置的個人計算機。
前述詳細描述已經經由使用框圖、流程圖和/或示例闡述了設備和/或過程的各種實施例。迄今為止,這樣的框圖、流程圖和/或示例包含一種或多種功能和/或操作,本領域技術人員將會理解的是,這樣的框圖、流程圖或示例中的每種功能和/或操作都能夠單獨和/或共同地由廣泛的硬件、軟件、固件或者實際上它們的任意組合來實施。在一個實施例中,這里所描述的主題的若干部分可以經由專用集成電路(ASIC)、現場可編程門陣列(FPGA)、數字信號處理器(DSP)或者其它集成形式來實施。然而,本領域技術人員將會認識到,這里所描述的實施例的一些方面能夠整體或部分地作為在一個或多個計 算機上運行的一個或多個計算機程序,作為在一個或多個處理器上運行的一個或多個程序,作為固件或者實質上作為他們的任意組合而等同地被實施在集成電路中,并且本領域技術人員通過借鑒本公開將能夠針對軟件和/或固件設計電路和/或編寫代碼。此外,本領域技術人員將會意識到,這里所公開的主題的機制能夠以各種形式作為程序產品而被分布,并且無論實際上被用來執行該分布的非瞬態信號承載介質的特定類型如何這里所描述的主題的說明性實施例都可以應用。非瞬態信號承載介質的示例包括但不限于以下形式:可記錄類型的介質,諸如軟盤、硬盤驅動、光盤(CD)、數字視頻盤(DVD)、數字磁帶、計算機存儲器等;以及傳輸類型的介質,諸如數字和/或模擬通信介質(例如,光纜、波導、有線通信鏈路、無線通信鏈路等)。
關于基本上這里的任意復數和/或單數術語的使用,如對于上下文和/或應用適宜的,本領域技術人員能夠從復數轉換為單數和/或從單數轉換為復數。出于清楚的目的在這里可以明確闡述各種單數/復數排列。
因此,已經描述了主題的特定實施例。其它實施例處于以下權利要求的范圍之內。在一些情況下,權利要求中所引用的動作能夠以不同順序來執行并且仍然實現所期望的結果。此外,附圖中所描繪的過程不一定要求所示的特定順序或連續順序來實現所期望的結果。在某些實施方式中,多任務和并行處理可以是有利的。

關 鍵 詞:
第三 應用 腳本 能力
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:第三方應用腳本能力.pdf
鏈接地址:http://www.rgyfuv.icu/p-6373788.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图