api.alert内容显示为空;APICloud中的alert和api.alert;APICloud模块中原生webview加载链接打不开、不展示

一、api.alert内容显示为空

1.问题重现:
​​

点击按钮调用:

api.alert("api.alert test");

现象:

 

 2.解决方案:

①修改内容格式,示例:

api.alert({msg: "api.alert test"})

效果:

 ②使用alert

alert("api.alert test");

效果:

二、APICloud中的alert和api.alert

①alert 是JS使用的,api.alert 是原生使用的;

②Android端:
alert会阻塞,比如调用连续弹a和b,会先弹a,点击确定后才会弹b

api.alert不会阻塞,比如调用连续弹a和b,会先弹a,不需要点确定就会直接弹b,覆盖到a上面,点b的确定后,a才会露出来。

iOS端:

alert和api.alert都不会阻塞,比如调用连续弹a和b,都是先弹a,不需要点确定就会直接弹b,覆盖到a上面,点b的确定后,a才会露出来。

不同的是,alert会显示页面名称。

三、APICloud模块中Android原生webview链接打不开、不展示

正因为alert会阻塞,如果在打开原生界面后调用alert(此时提示框覆盖不到原生界面,但已经触发了系统api),然后再跳转到协议webview页,协议会因为阻塞而加载不出来,需要改为api.alert。

比如集成原生插件一键登录(闪验)SDK后,调用openActivity打开原生授权界面后,会执行回调弹出alert,示例代码:

		function openActivity(){
			var param = {isFinish:true};
			shanyan.openActivity(param,function(ret, err){
	        	alert(JSON.stringify(ret));
	        	console.log("fff"+JSON.stringify(ret));
	        });
		}

调用后打开的原生界面效果图:

 此时已经在回调里面触发了alert,但由于alert无法覆盖到原生界面,所以没有显示(点击返回,回到APICloud模块界面才会显示);此时点击协议会跳转到原生webview加载的协议界面,只展示了原生代码写的导航栏,webview加载的协议会空白,效果如图:

 需要将回调里面的alert改为不阻塞的api.alert,修改后即可正常加载:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值