React Naitve喚醒三方APP

可以通過此方法喚醒內置應用 如設置麸拄、電話簿.....或者調用三方應用

android喚醒

android 喚醒APP需要原生支持,通過包名來喚醒APP

  1. 新建如下一個文件夾(openApp)和文件(CustomerOpenAppPackage.java组题,OpenAppModule.java)


    image.png
  2. OpenAppModule.java中寫入

package 你的目錄.openApp;

import android.content.Intent;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Promise;
import com.facebook.react.uimanager.IllegalViewOperationException;



public class OpenAppModule extends ReactContextBaseJavaModule {
    private ReactApplicationContext Context;
    public OpenAppModule(ReactApplicationContext reactContext) {
        super(reactContext);
        this.Context=reactContext;

    }

    @Override
    public String getName() {
        return "OpenApp";
    }

    @ReactMethod
    public void open(String packageName,Promise promise) {
        try {
            Intent intent = this.Context.getPackageManager().getLaunchIntentForPackage(packageName);
            if(intent !=null){
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                this.Context.startActivity(intent);
                promise.resolve("ok");
            }
            else{
                promise.resolve("fail");
            }
        }
        catch (IllegalViewOperationException e){
            promise.resolve("fail");
        }

    }
}
  1. CustomerOpenAppPackage.java中寫入
package 你的目錄.openApp;

import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CustomerOpenAppPackage implements ReactPackage {

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }

    @Override
    public List<NativeModule> createNativeModules(
            ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();

        modules.add(new OpenAppModule(reactContext));

        return modules;
    }

}

  1. MainApplication.java中注冊, 添加以下內容
......

import com.wallet_dk_rn.openApp.CustomerOpenAppPackage;
.....
protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(new MainReactPackage(), new FingerprintAuthPackage(), new RNDeviceInfo(),
          ...
           new CustomerOpenAppPackage());
    }

image.png
  1. 在js中
....
import { NativeModules,Linking,Platform } from 'react-native';
...
// 點擊方法中加入
if (Platform.OS === "android") {
    NativeModules.OpenApp.open("三方app包名,如設置:com.android.settings")
        .then(p => {
            if (p !== "ok") {
                // 沒找到app 跳轉到下載鏈接或者提示用戶app沒安裝
                Linking.openURL("")
            }
        })
}

ios 喚醒

ios比較簡單云矫,通過linking進行三方跳轉

  1. 添加白名單
    修改./ios/你的項目/info.plist
    添加以下內容
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>跳轉三方的app的 URL Schemes 例如:wexin</string>
</array>

如下圖


image.png
  1. js代碼中調用
....
import {Linking,Platform } from 'react-native';
...
// 點擊方法中加入
if (Platform.OS === "ios") {
    Linking.canOpenURL('weixin://').then(supported => { 
    // 可以跳轉
    if (supported) {
        Linking.openURL('weixin://')
    } else {
        // 不能跳轉 未安裝或者其他錯誤
        // 跳轉到下載鏈接或者提示用戶app沒安裝
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矫渔,隨后出現的幾起案子彤蔽,更是在濱河造成了極大的恐慌,老刑警劉巖庙洼,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顿痪,死亡現場離奇詭異,居然都是意外死亡油够,警方通過查閱死者的電腦和手機蚁袭,發(fā)現死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來石咬,“玉大人揩悄,你說我怎么就攤上這事」碛疲” “怎么了删性?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長焕窝。 經常有香客問我镇匀,道長,這世上最難降的妖魔是什么袜啃? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任汗侵,我火速辦了婚禮,結果婚禮上群发,老公的妹妹穿的比我還像新娘晰韵。我一直安慰自己,他們只是感情好熟妓,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布雪猪。 她就那樣靜靜地躺著,像睡著了一般起愈。 火紅的嫁衣襯著肌膚如雪只恨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天抬虽,我揣著相機與錄音官觅,去河邊找鬼。 笑死阐污,一個胖子當著我的面吹牛休涤,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼功氨,長吁一口氣:“原來是場噩夢啊……” “哼序苏!你這毒婦竟也來了?” 一聲冷哼從身側響起捷凄,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤忱详,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后跺涤,有當地人在樹林里發(fā)現了一具尸體匈睁,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年钦铁,在試婚紗的時候發(fā)現自己被綠了软舌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡牛曹,死狀恐怖佛点,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情黎比,我是刑警寧澤超营,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站阅虫,受9級特大地震影響演闭,放射性物質發(fā)生泄漏。R本人自食惡果不足惜颓帝,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一米碰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧购城,春花似錦吕座、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侮攀,卻和暖如春锣枝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兰英。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工撇叁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人箭昵。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓税朴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親家制。 傳聞我的和親對象是個殘疾皇子正林,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫、插件颤殴、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,109評論 4 62
  • 請大家仰臥在墊子上觅廓,臀部微微抬高,將背部肌膚伸展向臀部涵但,使背部肌膚更多的貼地杈绸。雙腳并攏,雙手放于身體兩側矮瘟,掌心向下...
    Iris_huang閱讀 388評論 0 2
  • 1. 秋去冬來拳球,又是一年的年底审姓。每到年底,總是有很多的職場故事祝峻∧拢或者是為年終獎而忐忑不安,或者為接到幾個獵頭的電話...
    IT職業(yè)與自媒體思考閱讀 224評論 0 0
  • 好友列表里那個永遠不會再聯(lián)系的人莱找,就像長在心里的一個刺酬姆,再那兒疼,撥掉更疼宋距。
    夢醒無暖閱讀 244評論 0 1
  • 綠得層層疊疊的釧路 單節(jié)車廂的列車 愿意送我們到摩周 帶我們闖進了綠的境地 近處草樹清晰轴踱,淺綠 遙望濕原曠遠,深綠...
    喜樂心記閱讀 210評論 0 1