正文
沒那么多廢話, 直接正文
服務端照舊使用 PHP
簡單搞一搞
全部代碼:
<?php
header("Content-type:application/json;charset=utf8");
$host = $_SERVER['HTTP_HOST'];
$json['librarys'] = [0 => ["name" => "Home",
"className" => "HomeViewController",
"type" => "framework",
"url" => "http://".$host."/update/librarys/Home.framework.zip",
"version" => "1.0"
]
];
// $json['librarys'] = [0 => ["name" => "Baidu",
// "className" => "BaiduViewController",
// "type" => "framework",
// "url" => "http://".$host."/update/librarys/Baidu.framework.zip",
// "version" => "1.0"
// ]
// ];
echo json_encode($json);
?>
此部分返回的內容為 Home
模塊相關信息, 內容為網(wǎng)絡加載一張圖片.
$json['librarys'] = [0 => ["name" => "Home",
"className" => "HomeViewController",
"type" => "framework",
"url" => "http://".$host."/update/librarys/Home.framework.zip",
"version" => "1.0"
]
];
此部分返回的內容為 Baidu
模塊相關信息, 內容為使用WKWebView
加載https://www.baidu.com
.
$json['librarys'] = [0 => ["name" => "Baidu",
"className" => "BaiduViewController",
"type" => "framework",
"url" => "http://".$host."/update/librarys/Baidu.framework.zip",
"version" => "1.0"
]
];
服務器目錄相關文件如圖:
librarys
(應該是libraries
?不要在意細節(jié))
librarys
文件夾下存放的是為客戶端提供的相關動態(tài)庫的壓縮包.(動態(tài)庫如何打包此處不做介紹)
request.php
就是服務端請求數(shù)據(jù)的接口文件
www.png
效果
當服務器返回Home
時候效果如圖:
home.png
當服務器返回Baidu
時候效果如圖:
baidu.png
整個過程僅僅改變了服務器返回的 framwork
相關JSON
信息.
結論
由此可見,如果模塊,結構規(guī)劃好的話, iOS
端也是完全能夠實現(xiàn) 碎片化的插件 更新.只需設計好一開始的殼,后續(xù)就完全能靠動態(tài)庫來開發(fā)各種功能.
但是,現(xiàn)實是 Apple
不讓這么玩,只能娛樂一下了.如果是企業(yè)版的話可以這么嘗試一下.
補充: 就當玩玩吧, 現(xiàn)在真機已經(jīng)不讓這么玩了...