Vue与原生APP优美交互

1.Vue调用原生方法

封装一个全局的方法,专门负责调用原生注入的方法
funcName:需要调用的方法,data:传递的参数
export const swicthToNativeApp  = (funcName,data) => {
    var temp = '调用APP方法:'+funcName;
    console.log(temp);
    if (isIOS()) {
        var canGo = true;
        try {
            if (window.webkit.messageHandlers == undefined || eval('window.webkit.messageHandlers.'+funcName) == undefined) {
                canGo = false;
            }
        } catch (err) {
            canGo = false;
        };

        if (canGo == true) {
            eval('window.webkit.messageHandlers.'+funcName+'.postMessage("'+data+'")');

        };

    } else if (isAndroid() && window.dejs) {
        eval('window.webkit.messageHandlers.'+funcName+'.postMessage("'+data+'")');
    } else {
        console.log('pc');
    }

};

2.原生APP调用Vue

A.在mounted方法中,将需要给APP调用的方法挂载到window下
appPwdLogin:方法名
 window.appPwdLogin=function () {
                that.logout();
            }
//B.注意,可以在App.vue中挂载方法,这样部分在哪个界面都可以被调用
        window.goToRoot=function () {
            that.$router.replace('/userCenterApp');
        }

iOS调用传参eg.

-(void)gesturePwdLoginWithData:(NSDictionary*)data{
    UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
    if (vc && [vc isKindOfClass:[DPWebViewControler class]]) {
        DPWebViewControler *dVc = (DPWebViewControler*)vc;
        if (!data) return;
        NSDictionary *PageInfoOrganInfo = data[@"result"][@"PageInfoOrganInfo"];
        if (!PageInfoOrganInfo) return;
        
        NSString *session = PageInfoOrganInfo[@"sessionId"];
        if (!session || [session isEqualToString:@""]) return;
        NSString *tempStr = [NSString stringWithFormat:@"gesturePwdLogin('%@')",session];
        [dVc.contentWebView evaluateJavaScript:tempStr completionHandler:^(id obj, NSError *error) {
            if (!error) {
                //去web用户中心,并刷新界面
                [self webPopToRoot];
            }
        }];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 创始人必备☞头牌评论 各位创投圈的小伙伴们,创新工场这家机构想必大家已经耳熟能详了把?创新工场其实就是一家早期投...
    头牌网阅读 2,140评论 0 0
  • “看,快看我。”小松鼠竖起蓬蓬的大尾巴,尾巴上顶了颗松果,还能抛起又接住。少年板着脸:“一点都不好看!”...
    山海花开阅读 178评论 0 0
  • 简爱与孤儿海伦结为好友,教师潭波儿很关心她,在孤儿院里的一场传染性的伤寒,夺走了许多孤儿的性命。简爱的好友海伦就在...
    秦海燕_0d78阅读 872评论 0 0
  • 由于昨天晚上喝酒喝到很晚,回到宾馆已经两点多,所以想早上多睡一会,以为会起来的很晚,怕在退房之前醒不了,所以定了一...
    陈则同阅读 234评论 0 0
  • 生命是盛开的花朵,它绽放的美丽舒展,绚丽多姿;生命是精美的小诗,清新流畅,意蕴悠长;生命是优美的乐曲,音律和...
    宝旺阅读 280评论 1 1