@tool-developer/deeplink

0.0.3 • Public • Published

@tool-developer/deeplink

该方案为整合解决方案,支持微信标签方式,Universal link,Scheme URL,itunes URL等方式。

DeepLink

import {DeepLink,setUniversalJumpLinks} from '@tool-developer/deeplink'
//
setUniversalJumpLinks([
  //
])
// ...
const el = DeepLink({

})
//...


1.微信标签方式

  wx >= 7.0.12
  ios >= 10.3
  android >= 5.0 

相关参数说明:
  {
    wxConfig,
    wxConfigError,
    launchOptions:{
      appid,// app必填
      username,// 小程序必填
    }
  }
  1. ios支持universal link方式
  非微信环境(safari浏览器):
    ios >= 9.0
  微信环境:
    wx >= 7.0.7
    ios >= 12.0

相关参数说明:

  {
    universalURL,// 必填,不填写也不会进入该流程
    universalOptions,// universal参数
    supportUniversal,// 默认未true,设置为false时,不仅如此该流程
    supportLaunch:'universal', // 调试时候使用,直接进入该流程
  }
  1. scheme url方式

相关参数说明:

  {
    schemeURL,// itunes url
    schemeOptions,// scheme 参数处理
    iosSchemeURL,// 针对ios的scheme url
    androidSchemeURL,// 针对android的scheme url
    supportScheme,// 默认未true,设置为false时,不仅如此该流程
    supportLaunch:'scheme', // 调试时候使用,直接进入该流程
  }
  1. ios支持itunes url方式

相关参数说明:

  {
    itunesURL,// itunes url
    iphoneItunesURL,// 针对iphone的itunes url
    ipadItunesURL,// 针对ipad的itunes url
    supportItunes,// 默认未true,设置为false时,不仅如此该流程
    supportLaunch:'itunes', // 调试时候使用,直接进入该流程
  }
  1. 自定义页面提示浏览器打开(跳出微信)

综上所述:
如果要求在微信环境打开APP的话,需要:

  ios >= 10.3 && wx >= 7.0.12 (微信标签方式)
  ios >= 12.0 && wx >= 7.0.7 (universal link方式)
  或者
  android >= 5.0 && wx >= 7.0.12 (微信标签方式)

举例说明:

参考example目录

wxConfig 微信配置参数

  wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名
    jsApiList: [] // 必填,需要使用的JS接口列表
  });

文档参考:JS-SDK说明文档

launchButtonView

  {
    onClick:({e.detail})=>{},// 自定义点击,返回true可阻止内部默认行为
    text:'打开',// 按钮文字或者内容
    style:{},//自定义样式
    cls:'launch-btn-view',//按钮class
  }

launchTipsView

  {
    style:{},//自定义背景遮罩样式
    cls:'launch-tips-view',//按钮class
  }

launchOptions, wx-open-launch-*选项

相关参数说明文档:开放标签说明文档

  1. wx-open-launch-weapp,打开小程序
  {
    id:'',//id,必填,需要具有唯一性,否则不能接收回调
    username:'',//所需跳转的小程序原始id,即小程序对应的以gh_开头的id
    path:''//所需跳转的小程序内页面路径及参数
  }

备注:对于path属性,所声明的页面路径必须添加.html后缀,如pages/home/index.html。

  1. wx-open-launch-app,打开APP 获得该接口权限,需同时满足如下条件:
  服务号已认证
  开放平台账号已认证
  服务号与开放平台账号同主体

相关参考:微信内网页跳转APP功能

  {
    id:'',//id,必填,需要具有唯一性,否则不能接收回调
    appid:'',
    extinfo:`${JSON.stringify(data)}`    
  }

launchSuccess?, 标签方式打开成功回调

可选

launchError?, 标签方式打开失败回调,返回true,可阻止内部默认行为

可选

launchErrorToDownload?,launch启动失败后直接进入下载流程,默认true

可选

wxConfigError?, 配置错误回调

可选

packageName?, 应用包名

可选

iosPackageName?, ios应用包名

可选
优先级比packageName高

androidPackageName?, android应用包名

可选
优先级比packageName高

downloadURL?, 下载地址

可选,建议提供应用包下载地址:http://a.app.qq.com/o/simple.jsp

已引入静默唤起scheme url方式,可不使用应用宝下载地址,可接入一个我们自己的带有下载APP功能的中间页地址

不配置downloadURL,且autoSchemeURL为true时,点击操作会走scheme url(静默唤起的方式在某些设备上交互体验不是很好)

universalURL?, Universal link 地址

可选
Universal link 地址,也可以作为引导提示链接地址

universalOptions

由于APP对于Universal link方式,通过参数schemeUrl使用了scheme url的处理流程, 所以,对于universal options的设置可以直接使用scheme的配置,不需要额外进行配置。

// 方式一,默认
universalOptions:true,// 使用scheme配置生成schemeUrl
// 方式二
universalOptions:false,// 不使用scheme配置参数
// 方式三,自定义参数,不传递schemeUrl,会使用scheme配置生成schemeUrl
universalOptions:{
  schemeUrl:'',
  //...
}

注意:内部已对universalOptions中的value值进行了decodeURIComponent编码处理,外部不要进行编码处理。

errorPageURL?, 错误引导页地址

可选
打开错误时引导提示链接地址,优先级比universalURL高

schemeURL?, Scheme url

可选

androidSchemeURL?,android Scheme url

可选
优先级比schemeURL高

iosSchemeURL?,ios Scheme url

可选
优先级比schemeURL高

schemeOptions

// 方式一,默认
schemeOptions:true,// 微信环境中点击,会提示浏览器打开
// 方式二
schemeOptions:false,// 微信环境中点击,不提示,走应用宝下载/打开流程
// 方式三,传递参数
schemeOptions:{
  url:'',
  //...
}

autoSchemeURL

默认接入后满足条件,会自动进入scheme url流程,默认是true。可设置为false,手动操作。

不需要外部进行完整scheme url地址拼接,参数部分可以设置到schemeOptions上。

通过scheme url方式唤起小程序

wxAppSchemeURL:小程序scheme url,具体参考文档

autoWxAppSchemeURL:是否自动唤起小程序,默认为false

注意:微信版本要满足>=8.0.6,才会有效 参考文档获取小程序Scheme Url

itunesURL?, itunes url

可选

ipadItunesURL?, ipad itunes url

可选
优先级比itunesURL高

iphoneItunesURL?, iphone itunes url

可选
优先级比itunesURL高

supportLaunch?, 手动配置进入方案

可选值,false|true|universal|scheme|itunes,默认false

  // false: 默认值,包含标签流程在内的正常流程
  // true: 非universal|scheme|itunes字符串,进入非标签流程之外的正常流程。故进入错误流程时会添加该参数值。
  // universal:进入Universal link方案,调试使用
  // scheme: 进入scheme方案,调试使用
  // itunes: 进入itunes方案,调试使用
  // wxscheme: 进入小程序scheme方案,调试使用

注意:其中false和true,非数据类型上的布尔值
因Universal link链接可作为公共提示页,故进入错误流程时会添加该参数

supportScheme?, 支持Scheme url方案

可选,默认true

supportItunes?, 支持itunes url方案

可选,默认true

supportUniversal?, 支持Universal kink方案

可选,默认true

wxAuthRequired 当前业务页面是否需要微信授权

默认false,需要微信授权的页面设置为true,否则以当前页面进入中转页,又会进入微信授权流程。

设置为true,原来的应用宝下载流程,会走universalURL的流程(提示微信打开,静默唤起APP)。

supportDeepLinkJumpQuery,是否支持中间页跳转流程处理

默认为true,中转流程处理会在下载和universal流程页面添加deepLinkJumpQuery参数

handle**Url

针对url地址参数,额外添加自定义处理,只需将处理结果返回即可

  handleDownloadSchemeUrl(url,params,os){
    //
    return url;
  }

Package Sidebar

Install

npm i @tool-developer/deeplink

Weekly Downloads

2

Version

0.0.3

License

MIT

Unpacked Size

179 kB

Total Files

30

Last publish

Collaborators

  • tooldeveloper