h5与原生APP交互定义示例

/**
 * h5交互规则
 * @author panpan
 */
 (function (object) {

	/***********************************************业务规则***********************************************/

	/**
	 * 通用app登录
	 */
	object.toAppLogin = function () {
		var callback = "window.App.loginCallback";
		window.App.gotoLogin(callback);
	}

     /**
	 * 打开登录界面
	 */
	object.gotoLogin = function (callback:string) {
		var params = _func.params("gotoLogin", {callback});
		_func.callApp(params);
	};

	/**
	 * 排班管理日期通知app
	 */
	 object.getScheduleDate = function (date:string) {
		var params = _func.params("getScheduleDate", {
			date: date,
			});
		_func.callApp(params);
	};

	 /**
	  * 跳转到服务师提现绑定
	  **/
	 object.toRewardBinding = function(){
		 var params = _func.params("toRewardBinding", {
		 });
		 _func.callApp(params);
	 };

	/**
	 * 网页通知APP要调用的方法
	 * @param method 规则名就是方法名
	 * @param isCurrentPage 是否作用于订单列表页面
	 */
	  object.callJs = function (method:string,isCurrentPage:number) {
		var params = _func.params("callJs", {
			method: method,
			isCurrentPage: isCurrentPage,
		});
		_func.callApp(params);
	};

	/**
	 * 团队数据返回的日期
	 * @param turnBackDate string 日期
	 */
	object.turnBackDate = function(turnBackDate:string){

	};

	 /**
	  * 关闭当前弹框
	  *  refresh 1:不刷新  2:刷新
	  *  closePreviousDialog:关闭上一个弹框 1否,2是
	  *  closePreviousWeb:关闭页面 1否,2是(新增参数)
	  * 
	  */
	 object.closeDialog = function (refresh:number,closePreviousDialog:number,closePreviousWeb:number) {
		 var params = _func.params("closeDialog", {
			 refresh: refresh,
			 closePreviousDialog:closePreviousDialog,
			 closePreviousWeb:closePreviousWeb,
			 });
		 _func.callApp(params);
	 };

	 /**
	 * 关闭当前H5页面
	 */
	  object.closeWeb = function (refresh:number) {// 1:不刷新  2:刷新
		var params = _func.params("closeWeb", {
			refresh: refresh,
		});
		_func.callApp(params);
	};

	/**
	 * 屏蔽标题
	 * @param {*} param
	 */
	 object.hideTitle = function(param:any){
		var params = _func.params("hideTitle", param);
		_func.callApp(params);
	}
	/**
	 * 展示标题
	 * @param {*} param
	 */
	 object.showTitle = function(param:any){
		var params = _func.params("showTitle", param);
		_func.callApp(params);
	}
	 /**
	  * 获取当前H5页面高度
	  */
	  object.getDialogHeight = function (height:number) { //height 高度
		var params = _func.params("getDialogHeight", {
			height: height,
			});
		_func.callApp(params);
	};

		/**
	 * @method 跳小程序
	 * @param {String} params[url]
	 * @param {String} params[appId]
	 */
		 object.goOpenXcx = function (url:any ,appId:any) {
			var params = _func.params("goOpenXcx", {
				url: url,
				appId: appId
			});
			_func.callApp(params);
		};

	 /**
	  * 选择图片
	  */
	 object.selectImgsForCode = function (param:any) {
		 var params = _func.params("selectImgsForCode", param);
		 _func.callApp(params);
	 };

	 /**
	  * @sessionId 会话id
	  * @sessionType p2p:单聊 team:群聊
	  * 打开IM聊天
	  */
	  object.openIMSession = function (sessionId:string,sessionType:string) {
		var params = _func.params("openIMSession", {
			sessionId:sessionId,
			sessionType:sessionType
		});
		_func.callApp(params);
	};

	/**
	  * 服务师开始服务
	  */
	 object.servicerStartService = function () {};

	 /**
	  * @isAdvance 是否提前结束服务:1否2是
	  * 服务师结束服务
	  */
	  object.servicerEndService = function (isAdvance:number) {
		var params = _func.params("servicerEndService", {
			isAdvance: isAdvance,
			});
		_func.callApp(params);
	  };

	 /**
	  * 选择视频
	  */
	 object.selectVideos = function (param:any) {
		var params = _func.params("selectVideos", param);
		_func.callApp(params);
	};

	 /**
	  * app 通知 h5 获取图片参数
	  */
	 object.getImgsForCode = function(param?:any,code?:any){

	 };

	 	/**
	 * app 通知 h5 刷新
	 */
	object.viewRefresh = function(){}


	 /**
	  * app 通知 h5 刷视频
	  */
	  object.getVideos = function(param?:any,code?:any){
	};

	/**
	 * 通知APP旋转屏幕
	 */
	 object.screenRotation = function(){
		var params = _func.params("screenRotation",{});
		_func.callApp(params);
	 };

	 /**
	 *在新打开的页面关闭上一个弹框
	 */
	  object.closePreviousDialog = function(){
		var params = _func.params("closePreviousDialog",{});
		_func.callApp(params);
	 };

	 /**
	 * 后台运行(缓存使用)
	 */
	  object.gotoBackground = function () {

	  };


	 /**
	 * 打开H5
	 * url 打开的地址
	 * isLand 是否要横屏 1否2是
	 */
	  object.gotoWeb = function (url:string,isLand:number) {
		var params = _func.params("gotoWeb", {
			"url": url,
			"isLand":isLand
		});
		_func.callApp(params);
	};

	/**
	 * 打开原生页面
	 * 
	 * 
	 */
		 object.gotoServiceFramework = function (param:any) {
			var params = _func.params("gotoServiceFramework", param);
			_func.callApp(params);
		};

	/**
	  * app 通知 h5 获取架构人员参数
	  */
	object.getCheckWorkers = function(param?:any,code?:any){

	};
	 /**
	  * 自定义链接弹窗
	  * url 弹窗链接
	  * closePreviousDialog 是否关闭上一个打开的弹窗 1:不关闭上一个弹窗; 2:关闭上一个弹窗;
	  * position弹窗位置,1是中间,2是底部
	  * canceledOnTouchOutside是否触摸外面关闭弹窗:,1否,2是
	  */
	 object.openWebDialog = function (url:string,closePreviousDialog:number,position:number,canceledOnTouchOutside:number) {
		 var params = _func.params("openWebDialog", {
			 url:url,
			 closePreviousDialog:closePreviousDialog,
			 position:position,
			 canceledOnTouchOutside:canceledOnTouchOutside
		 });
		 _func.callApp(params);
	 };

	  /**
	  * 提现
	    */
	 object.gotoWalletRollout = function () {
		var params = _func.params("gotoWalletRollout", {});
		_func.callApp(params);
	}

	 /**
	  * 地图地址编辑(系统小区)
	  */
	 object.gotoMap = function (address:string) {
		 var params = _func.params("gotoMap", {
			 address:address
		 });
		 _func.callApp(params);
	 }

	 /**
	 * 返回上级页面
	 */
	object.historyBack = function () {
		var params = _func.params("historyBack", {});
		_func.callApp(params);
	};
	 /***********************************************基类方法***********************************************/
	/**
	 * 虚方法,供个业务界面定义
	 */
	object.gotoBack = function () {
		if (isIPhone()) {
			return "true";
		} else {
			window.App.historyBack();
		}
	};

	//内部方法
	var _func = {
		callApp : function(params:any){
			if(isIPhone()){
				window.webkit.messageHandlers.app.postMessage(params);
			}else{
				window.androidCall.app(JSON.stringify(params));
			}
		},
		params : function(action:any, param:any){
			var params = {
				"action" : action,
				"params" : param
			};
			return params;
		}
	};
})(window.App = window.App || {});
export {}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值