使用APICloud SuperWebview 的 云修復(fù)來更新H5代碼修改內(nèi)容時,更新包下載完成,點擊提示框的重新啟動按鈕后,還需手動重啟App,才能看到更新內(nèi)容,這樣對用戶來說有些麻煩,所以做了如下解決方案。
更新包下載完成后,如果用戶允許重啟App,則關(guān)閉App,自動打開瀏覽器(如Safari),窗口提示是否跳轉(zhuǎn)App,選擇確定跳轉(zhuǎn)按鈕,則會跳轉(zhuǎn)到App,此時widget包就是最新的。代碼如下:
- OC
//AppDelegate.m文件
@interface AppDelegate ()<APISmartUpdateDelegate>
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[APIUpdateManager manager].smartUpdateDelegate = self;
}
#pragma mark - APISmartUpdateDelegate
- (void)didSmartUpdateFinished:(NSArray
*)packages {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue
(), ^{
abort();
});
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://yixianglife.com/open.html"]];//鏈接是H5開發(fā)寫的,代碼如下
}
- H5
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,minimum-scale=1.0">
<title>Mobile Safari調(diào)用本地APP,否則進(jìn)入App Store下載
</title>
<meta name="keywords" content="Mobile Safari 調(diào)用本地APP,否則進(jìn)入AppStore下載" />
<meta name="description" content="Mobile Safari 調(diào)用本地APP,否則進(jìn)入AppStore下載" />
<script type="text/javascript">
/**
瀏覽器版本信息
* @type {Object}
* @return {Boolean}
返回布爾值
*/
function browser() {
var u = navigator.userAgent.toLowerCase();
var app = navigator.appVersion.toLowerCase();
return {
txt: u, //瀏覽器版本信息
version: (u.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) ||[])[1], //版本號
msie: /msie/.test(u) && !/opera/.test(u), // IE內(nèi)核
mozilla: /mozilla/.test(u) && !/(compatible|webkit)/.test(u), //火狐瀏覽器
safari: /safari/.test(u) && !/chrome/.test(u), //是否為safari
chrome: /chrome/.test(u), //是否為chrome
opera: /opera/.test(u), //是否為oprea
presto: u.indexOf('presto/') > -1, //opera內(nèi)核
webKit: u.indexOf('applewebkit/') > -1, //蘋果、谷歌內(nèi)核
gecko: u.indexOf('gecko/') > -1 && u.indexOf('khtml') == -1, //火狐內(nèi)核
mobile: !!u.match(/applewebkit.*mobile.*/), //是否為移動終端
ios: !!u.match(/\(i[^;]+;( u;)? cpu.+mac os x/), //ios終端
android: u.indexOf('android') > -1, //android終端
iPhone: u.indexOf('iphone') > -1, //是否為iPhone
iPad: u.indexOf('ipad') > -1, //是否iPad
webApp: !!u.match(/applewebkit.*mobile.*/) && u.indexOf('safari/') == -1 //是否web應(yīng)該程序,沒有頭部與底部
};
}
var timeout;
function open_appstore() {
var b=browser();
if(b.ios||b.iPhone||b.iPad) {
window.location="
itms-apps://itunes.apple.com/app/異享生活/id1116877164?l=zh&ls=1&mt=8";
} else if(b.android) {//}
}
function try_to_open_app() {
var b=browser();
if(b.ios||b.iPhone||b.iPad) {
window.location="Yixianglife://";
} else if(b.android) {//}
timeout = setTimeout(
'open_appstore()', 30);
}
try_to_open_app();
</script>
</head>
<body>
</body>
</html>