更新记录

1.0.3(2024-05-22)

  1. 增加清空启动参数接口clearUTSIntentData()

1.0.2(2024-05-06)

  1. 增加添加桌面快捷方式功能

1.0.1(2024-05-06)

降低iOS最低版本

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:4.4,iOS:9,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

app、H5、短信启动拉起唤醒其他app、某个功能添加桌面快捷方式

  • app之间相互启动拉起传参通信
  • H5启动拉起app传参通信
  • 短信启动拉起app传参通信
  • 某个功能添加桌面快捷方式

相关插件推荐

集成插件

AppA要启动拉起AppB,AppA是拉起端,AppB是被拉起端

拉起端 WRSAwakeAppA-App A
  • uni-app manifest.json里配置iOS白名单urlschemewhitelist,urlschemewhitelist可以配置多个,内容可以自定义,demo里配置为wrsapp

"ios" : {
    "dSYMs" : false,
    "urlschemewhitelist" : "wrsapp"
}
  • uni-app x 项目根目录下创建Info.plist文件,文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>wrsapp</string>
    </array>
</plist>
被拉起端 WRSAwakeAppB-App B
  • uni-app manifest.json里配置Android的UrlSchemes、iOS的UrlSchemes,可以配置多个,内容可以自定义,demo里配置为wrsapp

"android" : {
    "schemes" : "wrsapp"
}

 "ios" : {
    "dSYMs" : false,
    "urltypes" : "wrsapp"
}
  • uni-app x 项目根目录下创建AndroidManifest.xml文件,文件内容为:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    package="io.dcloud.nativeresouce">
    <application>
        <!--meta-data-->
        <activity android:name="io.dcloud.uniapp.UniAppActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="wrsapp" />
            </intent-filter>
        </activity>
    </application>
</manifest>

接口


import {
    UTSPullUp,
    getUTSIntentData
} from "@/uni_modules/wrs-uts-pullup"

拉起端

  • app启动唤起另一个app

var urlParams = "name=wrs&age=12"
let data =  "wrsapp://wrs.app?" + urlParams // 有点类似get请求地址,格式为scheme:// + 地址路径(自定义) + 参数
let params = {} 
if (this.isAndroid) { 
    params.pkg = "uni.UNIEFB5A9B"  // android包名
    params.data = data // 参数可以放到data的后面,也可以放到extra字段里面
    params.extra = { // 额外参数
        address: "广东省"
    }
} else {
    params.url = data
}
UTSPullUp.openOtherApp(params)
  • app里判断手机是否有安装另一个app
var params = ""
if (this.isAndroid) { 
    params = ""uni.UNIEFB5A9B" // 另一个app的包名
} else {
    params = "wrsapp://" // 另一个app的scheme路径
}
UTSPullUp.isAppInstalled(params)

被拉起端

  • 获取启动app传过来的参数

// resp数据结构Android和iOS平台有差异,各自去适配
let resp = getUTSIntentData()
this.showMsg(JSON.stringify(resp))

android:

{
    "extras": {
        "short_cut_class_name": "io.dcloud.PandoraEntry",
        "__intetn_orientation__": 2,
        "address": "广东省"
    },
    "data": {
        "host": "wrs.app",
        "query": "name=wrs&age=12",
        "scheme": "wrsapp",
        "path": ""
    }
}

ios:

{
    url: "wrsapp://wrs.app?name=wrs&age=12"
}
  • 清空启动参数

clearUTSIntentData()

H5里启动唤起app,用手机默认浏览器打开,其他浏览器的话可能不一定有这个功能


<uni-link href="wrsapp://wrs.app?name=wrs&age=12" text="唤起App B"></uni-link>

短信启动唤起app

  • ios短信内容里有wrsapp://wrs.app?name=wrs&age=12的字符串,直接点击就可以启动app
  • Android受到各个手机平台的影响,有些支持短信内容wrsapp://wrs.app?name=wrs&age=12直接点击打开,有些不支持,可以统一放个H5链接的短信里,由H5里来启动app

添加桌面快捷方式


if (this.isAndroid) {
    var icon = plus.io.convertLocalFileSystemURL("_www/static/buslinelogo.png");
    var params = {}
    params.id = "shortcut_id001"
    params.shortLabel = "22路公交"
    params.longLabel = "22路公交"
    params.icon = icon
    params.pkg = "uni.UNIEFB5A9B"
    params.data = "wrsapp://wrs.app?name=wrs&age=12"
    params.extra = { // 额外参数
        address: "广东省"
    }
    let resp = addShortcut(params)
    this.showMsg(JSON.stringify(resp))
    this.showModel("已经尝试添加到桌面,若失败,请前往设置页面打开'创建桌面快捷方式'权限")
} else {
    // 业务参数都在url的H5页面里面,参考demo示例下shortcut/index.html
    let params = {}
    params.url = "http://172.16.11.16:8080/shortcut/index.html"
    UTSPullUp.openOtherApp(params)
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问