美文网首页
APICloud 云修复(iOS)更新包下载完成后重启App

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

作者: 桐丘 | 来源:发表于2017-06-08 18:14 被阅读216次

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

    相关文章

      网友评论

          本文标题:APICloud 云修复(iOS)更新包下载完成后重启App

          本文链接:https://www.haomeiwen.com/subject/dtytqxtx.html