博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uni-app 打开第三方程序
阅读量:7031 次
发布时间:2019-06-28

本文共 2686 字,大约阅读时间需要 8 分钟。

我们在开发 App 应用中,经常会遇到打开第三方程序的场景,在 uni-app 中我们应该如何做?相信不少刚接触的同学都会有此疑问。其实在 uni-app 中实现这个功能是非常简单的。

我们使用 5+ Plus runtime 可以很方便的实现上文操作。

在此之前,我们要知道一个很重要的概念,就是我们接下来要用到的东西。

什么是 HTML5 Plus

HTML5+ 规范是一个开放规范,隶属于工信部,允许三方浏览器厂商或其他手机runtime制造商实现。 HTML5+ 扩展了 JavaScript 对象 plus,使得 js 可以调用各种浏览器无法实现或实现不佳的系统能力,设备能力如摄像头、陀螺仪、文件系统等,业务能力如上传下载、二维码、地图、支付、语音输入、消息推送等。 除了功能外,HTML5+很重要的特点是提供了原生的渲染能力,通过 plus.webviewplus.nativeObjplus.nativeUI,让开发者可以使用 js 来调用原生渲染能力,实现体验的大幅提升。 原生的 api 多达 40万,HTML5+ 的封装并非把40万 api 都封装了一遍,而是分成了2个层面:

  • HTML5Plus 规范:常用的扩展能力,比如二维码、语音输入,都封装到了规范中,同时实现了 AndroidiOS 的解析引擎,使得开发者的代码编写一次,可跨平台运行。
  • Native.js 是另一项创新技术。手机 OS 的原生 API 有四十多万,大量的 API 无法被HTML5使用。Native.js 把几十万原生 API 映射成了 js 对象,通过 js 可以直接调 iosandroid 的原生 API。这部分就不再跨平台,写法分别是 plus.iosplus.android,比如调 ios game center,或在 android 手机桌面创建快捷方式,这些都是平台专有的 api

Native.js的用法示例

var obj= plus.android.import("android.content.Intent");// 将一个原生对象android.content.Intent映射为js对象obj,然后在js里操作obj对象的方法属性就可以了。复制代码

Native.js的详细教程可以参考:

如何使用 5+ Plus

如果之前开发过 5+App 的同学一定知道,在 5+App 中,使用 plus 的相关方法,需要初始化 plus 的相关环境。

用获取当前应用的 APPID 举个例子:

// 扩展API加载完毕后调用onPlusReady回调函数document.addEventListener('plusready', onPlusReady, false);// 扩展API加载完毕,现在可以正常调用扩展APIfunction onPlusReady(){	// 处理第三方传入的参数	alert('Current APP:' + plus.runtime.appid);}复制代码

而我们在 uni-app 开发中,根本不需要如此繁琐,uni-app 已经把 plus 环境都已经封装好,我们可以直接调用方法。

console.log('Current APP:' + plus.runtime.appid);复制代码

打开第三方程序

打开第三方程序,我们需要使用 模块,下面我罗列两个相关的方法。其他操作请详读文档。

  1. 调用第三方程序打开指定的 URL

    plus.runtime.openURL( url, errorCB, identity );复制代码
    • url: ( String ) 必选 要打开的 URL 地址
      字符串类型,各平台支持的地址类型存在差异,参考平台 URL 支持表。
    • errorCB: (OpenErrorCallback ) 可选 打开 URL 地址失败的回调
      打开指定URL地址失败时回调,并返回失败信息。
    • identity: ( String ) 可选 指定打开 URL 地址的程序名称
      iOS 平台此参数被忽略,在 Android 平台为程序包名,如果指定的包名不存在,则打开 URL 地址失败。
    复制代码
    复制代码
  2. 调用第三方程序

    plus.runtime.launchApplication( appInf, errorCB );复制代码
    • appInf: ( ApplicationInf ) 必选 要启动第三方程序的描述信息
    • errorCB: ( LaunchErrorCallback ) 必选 启动第三方程序操作失败的回调函数 启动第三方程序失败时回调,并返回失败信息。
    复制代码
    复制代码

常用URLscheme

[	{		name: '支付宝',		pname: 'com.eg.android.AlipayGphone',		scheme: 'alipay://'	},	{		name: '淘宝',		pname: 'com.taobao.taobao',		scheme: 'taobao://'	},	{		name: 'QQ',		pname: 'com.tencent.mobileqq',		scheme: 'mqq://'	},	{		name: '微信',		pname: 'com.tencent.mm',		scheme: 'weixin://'	},	{		name: '京东',		pname: 'com.jingdong.app.mall',		scheme: 'openApp.jdMobile://'	},	{		name: '新浪微博',		pname: 'com.sina.weibo',		scheme: 'sinaweibo://'	},	{		name: '优酷',		pname: 'com.youku.phone',		scheme: 'youku://'	}]复制代码

Tis :

  • 5+Plus 只能用于 App 端,不支持小程序与 H5 端。

具体示例从这篇文章的附件下载:

转载于:https://juejin.im/post/5c739535f265da2daa3159c9

你可能感兴趣的文章
红帽论坛北京站召开 设立亚太开放创新实验室
查看>>
苏宁11.11:如何基于异步化打造会员任务平台?
查看>>
区块链和数据科学:如果同时应用这两种技术,将会实现什么?
查看>>
Oracle即将发布的全新Java垃圾收集器 ZGC
查看>>
深入浅出Tensorflow(三):训练神经网络模型的常用方法
查看>>
Blazor将.NET带回到浏览器
查看>>
利用人工智能提升团队包容性
查看>>
详解分布式系统本质:“分治”和“冗余”
查看>>
gRPC-Web发布,REST又要被干掉了?
查看>>
全站爬虫项目一阶段总结
查看>>
在项目中引入领域驱动设计的经验
查看>>
用关系型NoSQL回到未来
查看>>
Jeff Bean谈Flink与流式处理的5大新发现
查看>>
技术寡头争霸传之:控制开源工具,就控制了整个生态
查看>>
微软把UWP定位成业务线应用程序开发平台
查看>>
2018腾讯云+未来峰会互联网专场:腾讯云智能物联解决方案亮相
查看>>
Python数据可视化的10种技能
查看>>
关于有效的性能调优的一些建议
查看>>
微软发起Java on Azure调查,呼吁Java社区积极参与
查看>>
搭建svn仓库
查看>>