环法竞猜项目:H5与原生APP交互方式

时间:2017-08-08 20:37:24   收藏:0   阅读:360

APP调用H5函数

(1)登录功能——调起APP的登录页面

操作:点击h5页面的"去登录"按钮,执行appLogin函数,检测window对象是否有WebViewJavascriptBridge属性,有的话就是IOS; window有ANDROID对象,就是安卓。分别执行对应环境下的操作。

appLogin () {
    var bridge = window.WebViewJavascriptBridge;
    var android = window.ANDROID;

    if (!!bridge) {
        bridge.callHandler(‘getAccessToken‘, null, null);
    } else if (!!android) {
        android.didClickLoginFromWebView();
    }
}

  

 
 
 
 
 

(2)登录功能——登录后回调到H5页面

window.refreshPage = function (responseData) {
    setTimeout(function () {
        window.location.hash = ‘/index/page?access_token=‘+responseData;
        window.location.reload();
    },1)
};

  

(3)分享后回调功能

提供一个全局函数给app调用,告知函数名即可。

 

  

APP端分享时设置标题

因为title数据可能后期需要修改,考虑到灵活性,因此将这个title设置的数据放在前端。通过meta标写在html中,由app负责读取和设置。

(1)IOS:

直接写在meta中,协商好name,IOS可以很方便地读取到)

<meta name="title" content="2017环法竞猜!赢万元骑行装备" >
<meta name="subtitle" content="环法竞猜活动。" >
<meta name="url" content="http://hd.xxx.com.cn/tourFrance2017/#/index/sharepage" >
<meta name="imageurl" content="http://hd.xxx.com.cn/tourFrance2017/public/img/share-icon.jpg" >

  

(2)Android:

Android比较难读取html页面元素,所以需要通过json把数据传给Android,didsetParamFromWebView是Android开发人员提供出的一个方法。(注意:需要把json转成字符串)

setTitleForAndroid() {
    var android = window.ANDROID;
    var titleJson = {
        ‘title‘: document.getElementsByTagName(‘meta‘)[‘title‘].content,
        ‘subtitle‘:document.getElementsByTagName(‘meta‘)[‘subtitle‘].content,
        ‘url‘:document.getElementsByTagName(‘meta‘)[‘url‘].content,
        ‘imageurl‘: document.getElementsByTagName(‘meta‘)[‘imageurl‘].content
    };
    android.didsetParamFromWebView(JSON.stringify(titleJson));
}

  

原文:http://www.cnblogs.com/mini1994/p/7308781.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!