【亲测可用,类似问题的试试这个方法】
为了处理这个问题,翻了apiCloud的文档,也查找了资料,没有对应提示到怎么解决这个问题,我们项目有一个功能用到了apiCloud api.openApp,用户用的设备有华为P50等都有这类似的问题(IOS 和其他设备都没问题);
android(安卓)设备使用apiCloud api.openApp方法,提示msg:未找到可执行的应用,导致无法弹出浏览器原因。
方式一:
咱们先来看看openApp方法下的androidPkg和mimeType两个属性的作用:
1、androidPkg: 类型:字符串 默认值:无 描述:(可选项)目标应用的包名或 action(Android平台使用),Android下必传 2、mimeType: 类型:字符串 默认值:无 描述:(可选项)指定目标应用的响应数据类型,如:"text/html"(Android平台使用)
一般使用apiCloud api.openApp方法示例:
api.openApp({ androidPkg: 'android.intent.action.VIEW', mimeType: 'text/html', uri: url }, function (ret, err) { if (ret) { console.log(JSON.stringify(ret)); } else { console.log(JSON.stringify(err)); } });
解决无法弹出浏览器,提示msg:未找到可执行的应用,直接去掉androidPkg和mimeType。
此方法可以解决部分机型问题,但是最终没解决我的问题,所以我找到了另一种方式处理;
api.openApp({ // androidPkg: 'android.intent.action.VIEW', // mimeType: 'text/html', uri: url }, function (ret, err) { if (ret) { console.log(JSON.stringify(ret)); } else { console.log(JSON.stringify(err)); });
方式二:
咱们先了解什么是jumpBrowser:jumpbrowser 是一款可以跳转手机浏览器的模块,传递需要的链接在系统手机浏览器打开,支持任何URL,是apiCloud的一种模块,模块要求 编译环境(打包环境) 和安装环境 均需要选择 Android 4.1 及以上系统版本;使用前必须要在APP先添加jumpBrowser模块;然后再具体代码使用处引入,
引入示例代码: let jumpbrowser=api.require('jumpbrowser'); 真正使用方式: let param = {Url:"http://www.baidu.com"}; jumpbrowser.jumpBrowser(param, function(ret, err){ }); }
以上方式二是最终解决我问题的方式,我这个bug很头大,处理后,还得到用户的夸奖,把我得瑟的。哈哈!
Tips:文中如有疑问或者错处,可以私信“且慢码农”。