APICloud 云修复(iOS)更新包下载完成后重启App

2017-06-08  本文已影响216人  桐丘

使用APICloud SuperWebview云修复来更新H5代码修改内容时,更新包下载完成,点击提示框的重新启动按钮后,还需手动重启App,才能看到更新内容,这样对用户来说有些麻烦,所以做了如下解决方案。
  更新包下载完成后,如果用户允许重启App,则关闭App,自动打开浏览器(如Safari),窗口提示是否跳转App,选择确定跳转按钮,则会跳转到App,此时widget包就是最新的。代码如下:

//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开发写的,代码如下
}

<!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调用本地APP,否则进入App Store下载
</title>
<meta name="keywords" content="Mobile Safari 调用本地APP,否则进入AppStore下载" />
<meta name="description" content="Mobile Safari 调用本地APP,否则进入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内核
        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内核
        webKit: u.indexOf('applewebkit/') > -1, //苹果、谷歌内核
        gecko: u.indexOf('gecko/') > -1 && u.indexOf('khtml') == -1, //火狐内核
        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应该程序,没有头部与底部
    };
}
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>
上一篇下一篇

猜你喜欢

热点阅读