callapp-lib æ¯ä¸ä¸ª H5 å¤èµ· APP çè§£å³æ¹æ¡ï¼è½å¤æ»¡è¶³å¤§é¨åå¤èµ·å®¢æ·ç«¯çåºæ¯ï¼ä¹é¢çäºæ©å±å?£ï¼å¸®ä½ å®ç°ä¸äºå®å¶åçåè½ã
å¦æä½ æ³äºè§£ä¸äºå¤ç«¯çåç?ç¥è¯ï¼æè é 读ä¸é?¢çææ¡£æä¸?ç?è§£çå??è¯?ï¼å?¯ä»¥è®¿é®è¿ç¯å?客 H5 å¤èµ· APP æå? ã
å¦æä½ å¨ä½¿ç¨ callapp-lib çè¿ç¨ä¸ï¼æå¥½çæ³æ³æè å?ç°äº bugï¼æ?? Issue å°±è¡ï¼ä½è ä¼å?æ¶è·è¿ã
Install with npm:
npm install --save callapp-libconst CallApp = require('callapp-lib');
or;
import CallApp from 'callapp-lib';callapp-lib å?æ ·æ¯æ? script å è½½ï¼ä½ å?¯ä»¥ä½¿ç¨ä¸é?¢ç cdn æä»¶ï¼å°å?å¨ä¸é?¢ç示ä¾ä¸ï¼ï¼ä¹å?¯ä»¥ä¸è½½ dist/index.umd.js å°ä½ ç项ç®ä¸ï¼index.umd.js 伿´é²ä¸ä¸ªå
¨å±å?é? CallApp ï¼è¿ä¸ªå
¨å±å?é?åä¸é?¢ commonjs 导å
¥ç CallApp å
容æ¯ä¸è´çï¼ä½¿ç¨æ¹æ³ä¹æ¯ä¸è´çã
<!-- å?æ¶ä¸è½½æªåç¼©çææ°çæ¬ Js -->
<script src="https://unpkg.com/callapp-lib"></script>
or
<!-- å
·ä½æ?ä¸çæ¬ï¼æ¬ä¾ä¸æ¯ 3.1.2 ï¼ä¸è½½é度è¾ä¸é?¢å¿«ä¸äºï¼å 为ä¸é?¢çå°å?伿 302 -->
<script src="https://unpkg.com/callapp-lib@3.1.2/dist/index.umd.js"></script>callapp-lib ä¸ä¼ éåºæ?¥çæ¯ä¸ä¸ªç±»ï¼ä½ éè¦?å°å®å®ä¾åï¼ç¶å?æ?è½å»è°ç¨å®ä¾å¯¹è±¡çæ¹æ³ã
const options = {
key1: 'xxx',
key2: 'xxx',
};
const callLib = new CallApp(options);
callLib.open({
param: {},
path: 'xxx',
});对常è§?çä¸äºé®é¢è¿è¡äºæ±æ»ï¼å¦æè¿äºé®çæ æ³è§£å³ä½ ççæï¼å ééç¾¤ï¼æç §æ??鮿¨¡æ?¿è¿è¡æ??é®
å®ä¾åè¿ç¨ä¸ï¼éè¦?ä¼ éä¸ä¸ª options 对象ç»ç±»ï¼options 对象å?屿§éè¦?ä¸¥æ ¼æç §ä¸é?¢çæ ¼å¼?ã
ä¸é?¢ææä¸?æ¯å¿ å¡«çï¼å¦æä½ ä¸?éè¦?ä¼ å¼ï¼å°±ä¸?è¦?åè¿ä¸ªå±æ§ï¼èä¸?æ¯ä¼ éä¸ä¸ªç©ºå符串æè 空对象ï¼callapp-lib å¹¶æªå¯¹è¿ç§?æ åµè¿è¡ä¸¥æ ¼çæ£æµã
ç±»å: object
å¿
å¡«: â
ç¨æ?¥é ?ç½® URL Scheme æå¿ é¡»çé£äº v åæ®µã
-
protocol
ç±»å:
string
å¿ å¡«: âAPP å??è®®ï¼URL Scheme ç scheme åæ®µï¼å°±æ¯ä½ è¦?æå¼ç APP çæ è¯ã
-
host
ç±»å:
string
å¿ å¡«: â?URL Scheme ç host åæ®µã
-
port
ç±»å:
string|number
å¿ å¡«: â?URL Scheme ç port åæ®µã
callapp-lib 2.0.0 çæ¬å·²ç§»é¤ï¼åå ç protocol ç§»å ¥å°æ°å¢ç scheme 屿§ä¸
ç±»å: object
å¿
å¡«: â?
å¤é¾ãæä»¬ç APP çæ?äºåè½å?¯è½ä¼éæ?å°å?¦ä¸ä¸ª APP ä¸ï¼ä¸ºäºåºåå®ä»¬çå??è®®ï¼ä¼å ä¸ä¸ä¸ªä¸é´é?æé¡µæ?¥åå?è·¯ç±ï¼è¿å±ä¸é´é¡µç URL Scheme å¯¹äºæä»¬æ?¥è¯´å°±æ¯å¤é¾ãå½ç¶ï¼è¿éçå¤é¾å¯¹ Intent å?æ ·çæã
ä¾ï¼youku://ykshortvideo?url=xxx
-
protocol (2.0.0 çæ¬ç±åå ç protocal ä¿®æ¹ä¸º protocolï¼åå ç protocal æ¯æ¼åé误)
å? URL Scheme ç scheme åæ®µï¼å¨ä½ ç APP å°±åä¸é?¢ç protocol 屿§å¼ç¸å?ï¼å¨å ¶ä» APP æå¼å°±ä¼ 该 APP ç scheme æ è¯ã
-
path
å?è URL Scheme ç path åæ®µï¼å®ä»£è¡¨äºè¯¥ APP çå ·ä½çæ?个å页é?¢ï¼åè½ï¼ï¼è¿éç path å°±æ¯å¯¹åºçä¸é´é¡µã
-
key
æ¢ç¶å?ªæ¯ä¸é´é¡µï¼å®èªç¶è¦?æå¼æä»¬çæ£è¦?æå¼ç页é?¢ï¼æä»¥æä»¬éè¦?æè¦?æå¼ç页é?¢ç URL Scheme ä¼ éè¿å»ãå°±å?å?ç«¯ä» URL ç query å符串éé?¢å?å¼ä¸æ ·ï¼å®¢æ·ç«¯ä¹æ¯ä» URL Scheme éé?¢æ?¥å?ãè³äºå?æ° key 宿?ä»ä¹ï¼å¤§å®¶èªå·±å»å??åå?§ï¼ä¸é?¢ç示ä¾ä¸
urlä¹å?ªæ¯ä¸ä¸ªç¤ºä¾ã
ç±»å: object
å¿
å¡«: â?
å®å?åçè°·ææµ?è§å¨å¿ é¡»ä¼ é Intent å??è®®å°å?ï¼æ?è½å¤èµ· APPã
宿¯æ?以ä¸äºä¸ªå±æ§ï¼å ¶ä¸ scheme å ä¸é?¢ç protocal 䏿 ·ï¼å ¶ä»åä¸ªé½æ¯ apk ç¸å ³ä¿¡æ?¯ï¼å ¶ä¸ package å scheme å¿ ä¼ ï¼
- package
- action
- category
- component
- scheme
ç±»å: object
å¿
å¡«: â?
å¦æä½ ä»¬ç ios å·¥ç¨å¸æ²¡æå?ç¸åºçé ?ç½®æ?¥è®© APP æ¯æ? Universal Linkï¼ä½ å?¯ä»¥ä¸?ç¨ä¼ éï¼ callap-lib å°ä¼ä½¿ç¨ URL Scheme æ?¥æ¿ä»£å®ã
-
host
ä½ ç Universal Link çåå??ï¼
apple-app-site-associationæä»¶å°±æ¾å¨è¿ä¸ªåå??对åºçæ?å¡å¨ä¸ã -
pathKey
3.5.0çæ¬ä»¥å?pathKeyé?å¿ å¡«é¡¹ï¼pathkeyå¡«åä¸ä¸?å¡«åä»£è¡¨äº Universal Link æ¼æ¥ç两ç§?æ¹å¼?ãä¸?建议使ç¨pathKeyï¼å 为使ç¨å®æ¼æ¥ç Universal Link ä¸?è´´å? URL 设计æ?æ³ã-
ä¸?ä½¿ç¨ pathKeyï¼å®¢æ·ç«¯æ??èµ· path ä¿¡æ?¯å°ä¼ä» url ä¸è·å?ï¼èä¸?æ¯ä» queryString ä¸è·å?
Universal Link æ¼æ¥è§å:
const universalLink = `https://${host}/${openæ¹æ³ä¸çpath}?${openæ¹æ³ä¸param转æ?¢çqueryString}`;
-
ä½¿ç¨ pathKeyï¼pathKey å°±åå?é?¢ Intent ç key 屿§ä¸æ ·ï¼å?ªæ¯è¿éç pathKey æ¯å®¢æ·ç«¯ç¨æ?¥æ??å? path ä¿¡æ?¯çï¼ä»¥ä¾¿ç¥é?è°ç¨çæ¯ APP çåªä¸ªé¡µé?¢ãè¿ä¸ªå¼ä¹æ¯éè¦?ä½ å ios ç«¥éå??åå®ä¸æ?¥çã
Universal Link æ¼æ¥è§å:
const universalLink = `https://${host}?${pathKey}=${openæ¹æ³ä¸çpath}&${openæ¹æ³ä¸param转æ?¢çqueryString}`;
-
ç±»å: string
å¿
å¡«: â
APP ç App Store å°å?ï¼ä¾ï¼ https://itunes.apple.com/cn/app/id1383186862ã
ç±»å: string
å¿
å¡«: â?
APP çåºç¨å®?å°å?ï¼ä¾ï¼'//a.app.qq.com/o/simple.jsp?pkgname=com.youku.shortvideo'ã妿ä¸?å¡«åï¼åå®å?微信ä¸ä¼ç´æ¥è·³è½¬ fallback
ç±»å: boolean
å¿
å¡«: â?
é»è®¤å¼: false
æ¯å?¦æ¯æ?å¾®å?ï¼é»è®¤ä¸?æ¯æ?
ç±»å: number
å¿
å¡«: â?
é»è®¤å¼: 2000
çå¾ å¤ç«¯çæ¶é´ï¼å?ä½?: msï¼ï¼è¶ æ¶åå¤æä¸ºå¤ç«¯å¤±è´¥ã
ç±»å: string
å¿
å¡«: â
å¤ç«¯å¤±è´¥å?跳转çå°å?ã
ç±»å: function
å¿
å¡«: â?
(status: 'pending' | 'failure') => void;åç¹å ¥å?£å½æ°ãè¿?è?¥å?å¦å?¯è½ä¼å¸ææä»¬å¨å¤ç«¯çæ¶åå?åç¹ï¼å°ä½ çåç¹å½æ°ä¼ éè¿æ?¥ï¼ä¸?管å¤ç«¯æ?åä¸å?¦ï¼å®é½ä¼è¢«æ§è¡ãå½ç¶ï¼ä½ ä¹å?¯ä»¥å°è¿ä¸ªå½æ°å?¦ä½ä»ç¨ã
è¿ä¸ªåè°å½æ°ä¼åæ§è¡ä¸¤æ¬¡ï¼ç¬¬ä¸æ¬¡æ¯è§¦å? open æ¹æ³ï¼ç¬¬äºæ¬¡æ¯å¤ç«¯å¤±è´¥ï¼å®æä¸ä¸ªå
¥å? status ï¼å®æä¸¤ä¸ªå¼ pending å failureï¼åå«ä»£è¡¨å½æ°è§¦å?å?å¤ç«¯å¤±è´¥ã
ç±»å: function
å¿
å¡«: â?
url scheme èªå®ä¹æ¼æ¥å½æ°ï¼å
ç½®ç buildScheme 彿°æ¯æç
§ uri è§èæ?¥æ¼æ¥çï¼å¦æä½ 们ç app 对 url scheme æç¹æ®éæ±ï¼å?¯ä»¥èªå®ä¹è¿ä¸ªå½æ°ï¼æ¤å½æ°æä¸¤ä¸ªå
¥å?ï¼(config, options), config æ¯ä½ è°ç¨ open æ¹æ³æ¯ä¼ å
¥ç对象ï¼options æ¯ä½ å?å§å callapp-lib æ¶ä¼ å
¥ç对象ã
å¤ç«¯åè½ãæ¥æ¶ä¸ä¸ªå¯¹è±¡ä½ä¸ºå?æ°ï¼è¯¥å¯¹è±¡æ¯æ?以ä¸å±æ§ï¼
-
path
ç±»å:
stringå¿ å¡«: âéè¦?æå¼ç页é?¢å¯¹åºçå¼ï¼URL Scheme ä¸ç path é¨åï¼å?ç § H5 å¤èµ· APP æå? 䏿ä¸çè§£éã
å?ªæ³è¦?ç´æ¥æå¼ app ï¼ä¸?éè¦?æå¼ç¹å®é¡µé?¢ï¼path ä¼ ç©ºå符串
''å°±å?¯ä»¥ã -
param
ç±»å:
object
å¿ å¡«: â?æå¼ APP æ?个页é?¢ï¼å®éè¦?æ¥æ¶çå?æ°ã
-
callback å¿ å¡«: â?
ç±»å:
functionèªå®ä¹å¤ç«¯å¤±è´¥åè°å½æ°ãä¼ é
callbackä¼è¦ç callapp-lib åºä¸é»è®¤çå¤ç«¯å¤±è´¥å¤ç?é»è¾ã
æ¥æ¶ä¸ä¸ªå¯¹è±¡ä½ä¸ºå?æ°ï¼è¯¥å¯¹è±¡å å?«ä»¥ä¸å±æ§ï¼
- path
- param
屿§å?«ä¹å open æ¹æ³å?æ°ç屿§ä¸è´ã
è¿å URL Schemeãå¦æä½ è§å¾ callapp-lib çå¤ç«¯å¤ç?æ¹å¼?ä¸?符å?ä½ çéæ±ï¼ä½ä½ å?ä¸?æ³è´¹å¿è´¹åçèªå·±å»æ¼å URL Schemeï¼å?¯ä»¥å©ç¨è¿ä¸ªæ¹æ³ç´æ¥çæ?ã
çæ? Intent å°å?ï¼æ¥æ¶å?æ°å? generateScheme æ¹æ³å?æ°ã
çæ? Universal Linkï¼æ¥æ¶å?æ°å? generateScheme æ¹æ³å?æ°ã
妿å好解å³äºä½ çé®é¢ï¼å¦æä½ å¿æ è¿ä¸?éï¼å¦æå°æä½ç²®ï¼å?¯ä»¥ç»ä½è æèµ?䏿?¯åå¡å¦ï¼ç±å®?~



