国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

OpenApplus小程序容器

neuSnail / 2835人閱讀

摘要:參數(shù)格式為,其中為,僅支持一層字典否調(diào)用成功的回調(diào)函數(shù)否調(diào)用失敗的回調(diào)函數(shù)否調(diào)用結(jié)束的回調(diào)函數(shù)調(diào)用成功失敗都會(huì)執(zhí)行警告框。

概述

OpenApp+ 一個(gè)小程序容器,配置簡(jiǎn)單、功能完善、界面流暢、開(kāi)箱即用!使用OpenApp+可以快速擴(kuò)展你的APP,使其擁有與微信一樣的功能擴(kuò)展可能,讓App的所有的功能都通過(guò)小程序來(lái)實(shí)現(xiàn),動(dòng)態(tài)更新,更快的響應(yīng)用戶需求。其擁有的管理具備版本管理功能,讓功能發(fā)布更加隨心。

集成SDK 獲得 AppKey

在平臺(tái)上注冊(cè)帳號(hào),可以任意添加新 App,每一個(gè) App 都有一個(gè)唯一的 AppKey 作為標(biāo)識(shí),平臺(tái)提供客戶端的AppKey、Appsecret和服務(wù)端的AppKey、Appsecret以便接入

iOS集成 Cocoapods 安裝

推薦使用 CocoaPods 的方式安裝使用。

CocoaPods 是一個(gè)廣泛適用于Objective-C依賴管理工具,能夠自動(dòng)配置項(xiàng)目,簡(jiǎn)化你配置Openapp+的過(guò)程,使用以下命令行安裝

$ gem install cocoapods

OpenApplus 安裝

使用CocosPods集成Openapp+到Xcode,需要編寫(xiě)/podspec/OpenApplus.podspec文件

Pod::Spec.new do |s|
    s.name         = "OpenApplus"
    s.version      = "1.0.0"
    s.summary      = "OpenApplus framework"
    s.homepage     = "http://github.com/linwaiwai/openapplus"
    s.license      = { :type => "OpenApplus License, Version 1.0.0", :text => <<-LICENSE
      Licensed under the OpenApplus License, Version 1.0.0 (the "License");
      you may not use this file except in compliance with the License.
      LICENSE
    }
    s.author   = "linwaiwai"
    s.platform     = :ios, "6.0.0"
    s.source       = { :git => "https://github.com/linwaiwai/openapplus.git", :branch => "master"}
    s.frameworks = "UIKit"
    s.requires_arc = true
    s.dependency "SDWebImage", "3.7.5"
    s.dependency "SSZipArchive", "1.6.2"
    s.dependency "SVProgressHUD", "2.1.2"
    s.dependency "Masonry", "1.0.2"
    s.dependency "UMengUShare/Social/WeChat", "6.3.0"
    s.dependency "MJRefresh", "3.1.12"
    s.dependency "libextobjc", "~> 0.4.1"
    s.dependency "AFNetworking"
    s.dependency "OpenUDID"

    s.subspec "OpenApplus" do |ss|
        ss.vendored_frameworks = "*.framework"
        ss.vendored_libraries = "*.a"
        ss.source_files = "*.h"
        ss.resource = "*.bundle"
    end
end
在Podfile文件加入
source "https://github.com/CocoaPods/Specs.git"
platform :ios, "8.0"
#忽略引入庫(kù)的警告
inhibit_all_warnings!

target "openapplus-ios-demo" do
    pod "OpenApplus", :podspec => "./podspec/OpenApplus.podspec"
end
在工程中Info.plist文件中添加如下項(xiàng)
NSAppTransportSecurity

  NSAllowsArbitraryLoads
   
運(yùn)行

在 AppDelegate.m 里按順序調(diào)用三個(gè)方法:

1、調(diào)用 +startWithAppKey: ,參數(shù)為第一步獲得的 AppKey。

2、調(diào)用 +sync 方法檢查包更新。

在AppDelegate.m或ViewController.m中調(diào)用 navigateToMiniProgram: 加載小程序項(xiàng)目,參數(shù)為在平臺(tái)中創(chuàng)建的項(xiàng)目的名稱。

  #import <"openapplus/openapplus.h">
  @implementation AppDelegate
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:testViewController];
      self.window.rootViewController = navigationController;
      [self.window makeKeyAndVisible];

      [OpenApplus startWithAppKey:@"test"];
      [OpenApplus sync];
      [OpenApplus setNavigationController:navigationController];
      // JS_APPID 為小程序的APP_ID
      [OpenApplus navigateToMiniProgram:@"openapplus://jsApp/#JS_APPID#" completion:^{
        
      }];

      ...
  }
  @end

上述例子是把 Openapplus 同步放在 -application:didFinishLaunchingWithOptions: 里,若希望包能及時(shí)推送,可以把 [OpenApplus sync] 放在 -applicationDidBecomeActive: 里,每次喚醒都能同步更新 OpenApplus 包,不需要等用戶下次啟動(dòng)。

Android集成 Android Studio集成

下載SDK功能組件,解壓.zip文件得到相應(yīng)組件包(openapplus-release.aar),在Android Studio的項(xiàng)目工程libs目錄中拷入相關(guān)組件jar包。

右鍵Android Studio的項(xiàng)目工程—>選擇Open Module Settings —>在 Project Structure彈出框中 —>選擇 Dependencies選項(xiàng)卡 —>點(diǎn)擊左下“+”—>選擇組件包類型—>引入相應(yīng)的組件包。

運(yùn)行

在項(xiàng)目工程的自定義application中的onCreate方法中添加以下兩個(gè)方法:
注意:一定要在主進(jìn)程進(jìn)行該項(xiàng)操作

OpenApplus.registerApp(this, SampleContants.APPID, SampleContants.APP_SECRET);
OpenApplus.sync();
OpenApplus.setCallback(new OpenApplusCallback() {
            @Override
            public void invoke(OACallbackType type, JSONObject data, OpenApplusNotify notify) {
                if (type == OACallbackType.OACallbackTypeAuthUser){
                    // 該接口僅供測(cè)試使用,請(qǐng)使用服務(wù)端發(fā)送給授權(quán)請(qǐng)求
                    OARequestWrapper requestWrapper = OpenApplus.makeRequestWrapper(SampleContants.SERVER_APPID, SampleContants.SERVER_APP_SECRET);
                    OAAuthDtoWrapper dto = new OAAuthDtoWrapper();
                    dto.setUid("1");
                    try {
                        dto.setCode(data.getString("code"));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    String deviceID = Settings.Secure.getString(WXEnvironment.sApplication.getApplicationContext().getContentResolver(),
                            Settings.Secure.ANDROID_ID);
                    dto.setDeviceid(deviceID);
                    requestWrapper.sendObject(dto, notify);
                }
            }
});

注意:

參數(shù)1:上下文,必須的參數(shù),不能為空

參數(shù)2:OpenApplus app key,必須參數(shù)。

參數(shù)3:OpenApplus app secret,必須參數(shù)。

添加相關(guān)權(quán)限



























代碼混淆

如果您的應(yīng)用使用了混淆, 請(qǐng)?zhí)砑?/p>

-keep class com.openapplus.** {*;}
添加Activty入口

在AndroidManifest.xml中添加


    
        

        
        

        
        
    

啟動(dòng)小程序容器
Intent intent = new Intent(SplashActivity.this, OATinyProgramActivity.class);
intent.putExtra("tiny","openapplus://jsApp/xxxxx");
startActivity(intent);
finish();
小程序 API 授權(quán)登錄流程 一、App接入 第一步:獲取服務(wù)端的AppKey、AppSecret、AppKey、JsAppsecret

在進(jìn)行OpenApp+ OAuth2授權(quán)登錄接入之前,在開(kāi)放平臺(tái)注冊(cè)【http://www.openapplus.com/】開(kāi)發(fā)者帳號(hào),并擁有一個(gè)已審核通過(guò)的網(wǎng)站應(yīng)用, 獲取應(yīng)用的AppKey、AppSecret,并獲得相應(yīng)的服務(wù)端的JsAppKey、JsAppsecret,申請(qǐng)OpenApp+登錄且通過(guò)審核后,可開(kāi)始接入流程。

第二步:配置App的授權(quán)接口
    [OpenApplus startWithAppKey:@"AppKey" andSecret:@"AppSecret"];
    NSString *uid = @"111";
    [OAConfiguration setUserIdentify:uid];
    [OpenApplus setupCallback:^(OACallbackType type, id data, OpenApplusNotify notify, NSError *error) {
        switch (type) {
            case OACallbackTypeAuthUser: {
                // http://www.openapplus.com/auth/auth,請(qǐng)求該接口獲取token和超時(shí)時(shí)間
                OAContainerAuthObject *containerAuthObject = [[OAContainerAuthObject alloc] init];
                containerAuthObject.token = @"";
                containerAuthObject.expired = @"";
                notify(containerAuthObject, nil);
                // 使用App服務(wù)端的AppKey和AppSecret,以下注釋代碼因?yàn)槭褂煤?jiǎn)易方式,沒(méi)有經(jīng)過(guò)服務(wù)端的驗(yàn)證,并且將AppServerKey,AppServerSecret暴露在客戶端,屬于不安全的簡(jiǎn)易方式,僅供測(cè)試或者沒(méi)有服務(wù)器的app的使用,再次申請(qǐng),該方式不安全。
                // OARequestWrapper *requestWrapper = [OpenApplus requestWithAppKey:@"AppServerKey" andSecret:@"AppServerSecret"];
                // OAAuthDtoWrapper *dto = [[OAAuthDtoWrapper alloc] init];
                // dto.code  = [data performSelector:@selector(code)];
                // dto.deviceid  = [OpenUDID value];
                // dto.uid = uid;
                // [requestWrapper sendObject:dto thenNotify:notify];
            }
  }]
第三步:用戶認(rèn)證

用戶認(rèn)證接口

http://www.openapplus.com/auth/auth

請(qǐng)求方式:

POST, ContentType:x-www-form-urlencode

參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
appKey String 應(yīng)用appServerKey
code String 授權(quán)code
deviceid String 設(shè)備deviceid
uid String 用戶標(biāo)識(shí)
timestamp String 當(dāng)前時(shí)間戳
signature String 使用簽名規(guī)則生成的簽名sha1(toquery(sort(params))) , 參數(shù)中密鑰為:appSecret=appSecret

返回說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
code String 狀態(tài)編碼
data String 返回?cái)?shù)據(jù)
message String 錯(cuò)誤信息

data參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
token String 授權(quán)token
expired String 為session的過(guò)期時(shí)間
二、小程序接入 第一步:獲取小程序的JsAppKey、JsAppsecret

在進(jìn)行OpenApp+ OAuth2授權(quán)登錄接入之前,在開(kāi)放平臺(tái)注冊(cè)【http://www.openapplus.com/】開(kāi)發(fā)者帳號(hào),并擁有一個(gè)已審核通過(guò)的小程序項(xiàng)目,并獲得相應(yīng)的服務(wù)端的JsAppKey、JsAppsecret,將其授權(quán)到應(yīng)用后,可開(kāi)始接入流程。

第二步:前端調(diào)用登錄API
my.getAuthCode({
  jsAppKey: "jsAppKey",
  success: (loginResponse) => {
       if (!loginResponse.error){
        let sessionData = {
            token: loginResponse.authCode,
            jsAppKey: that.config.jsAppKey
        }
        let qs = require("qs")
          my.httpRequest({
          url: "http://httpbin.org/post",
          method: "POST",
          data: sessionData,
          success: function(res) {
            if (parseInt(respData.data.code) === 1) {
                 console.debug("獲取jsToken成功!jsToken為:" + respData.data.jsToken);
            }
          },
          fail: function(res) {
            console.debug("獲取authCode失敗!");
          },
          complete: function(res) {
            
          }
        });
    } else {
        console.debug("獲取jsToken失敗!");
    }
  }
});
第三步:通過(guò)jsToken獲取獲取后臺(tái)session
http://www.openapplus.com/auth/jsapp/code2session

請(qǐng)求方式:

POST, ContentType:x-www-form-urlencode

參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
jsAppKey String 該應(yīng)用的jsAppKey
token String 前端獲取的jsToken
timestamp String 當(dāng)前時(shí)間戳
signature String 使用簽名規(guī)則生成的簽名sha1(toquery(sort(params))) , 參數(shù)中密鑰為:appSecret=jsAppSecret

返回說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
code String 狀態(tài)編碼
data String 響應(yīng)數(shù)據(jù)
message String 錯(cuò)誤信息

data參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
session String 授權(quán)會(huì)話
expired String 為session的過(guò)期時(shí)間
第五步:通過(guò)session調(diào)用接口

能調(diào)用的接口有以下:

| 接口|接口URL|接口說(shuō)明|
| :------| ------: | ------: |
| /auth/jsapp/getUser| http://www.openapplus.com/aut... | 獲取用戶個(gè)人信息 |

客戶端 my. getAuthCode(OBJECT)

調(diào)用接口獲取登錄憑證(jsAppToken)進(jìn)而換取用戶登錄態(tài)信息,包括用戶的唯一標(biāo)識(shí)(openid) 及本次登錄的 會(huì)話密鑰(session_key)。用戶數(shù)據(jù)的加解密通訊需要依賴會(huì)話密鑰完成。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
jsAppKey String 小程序應(yīng)用AppKey
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

CALLBACK返回參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
authCode String 授權(quán)碼,用戶允許登錄后,回調(diào)內(nèi)容會(huì)帶上 authCode(有效期五分鐘),開(kāi)發(fā)者需要將 authCode 發(fā)送到開(kāi)發(fā)者服務(wù)器后臺(tái),使用code 換取 session_key api,將 authCode 換成 openid 和 session_key
expired Timestamp 過(guò)期時(shí)間

示例代碼:

my.getAuthCode({
  jsAppKey: "jsAppKey",
  success: (res) => {
    my.alert({
    content: res.authCode,
  });
  },
});
my. navigateToMiniProgram(OBJECT)

開(kāi)放小程序容器操作API,打開(kāi)同一App下關(guān)聯(lián)的另一個(gè)小程序。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
appId String 要打開(kāi)的小程序 jsAppKey
path String 打開(kāi)的頁(yè)面路徑,如果為空則打開(kāi)首頁(yè)
extraData String 需要傳遞給目標(biāo)小程序的數(shù)據(jù),目標(biāo)小程序可在 App.onLaunch(e),App.onShow(e) 中獲取到這份數(shù)據(jù)。參數(shù)e格式為:{path: "", query: query},其中query 為extraData,僅支持一層字典
url String 和appId二者選擇一個(gè),打開(kāi)小程序的URL,格式為:openapplus://jsApp/e03f37ba425a47e6aafd8170eee6be52/param1=value1¶m2=value2, 如果參數(shù)中提供了instancId,會(huì)嘗試打開(kāi)已有頁(yè)面
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

示例代碼:

  my.navigateToMiniProgram({
  appId: "",
  path: "pages/index/index",
  extraData: {
    foo: "bar"
  },
  envVersion: "develop",
  success(res) {
    // 打開(kāi)成功
  }
})
wx.navigateBackMiniProgram(OBJECT)

返回到上一個(gè)小程序,只有在當(dāng)前小程序是被其他小程序打開(kāi)時(shí)可以調(diào)用成功

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
extraData String 需要返回給上一個(gè)小程序的數(shù)據(jù),上一個(gè)小程序可在 App.onShow(e) 中獲取到這份數(shù)據(jù)。參數(shù)e格式為:{path: "", query: query},其中query 為extraData,僅支持一層字典
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)
my.alert(OBJECT)

alert 警告框。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
title String alert框的標(biāo)題
content function alert框的內(nèi)容
buttonText function 按鈕文字,默認(rèn)確定
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)
my.confirm(OBJECT)

confirm 確認(rèn)框。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
title String alert框的標(biāo)題
content function alert框的內(nèi)容
confirmButtonText function 確認(rèn)按鈕文字,默認(rèn)‘確定’
cancelButtonText function 確認(rèn)按鈕文字,默認(rèn)‘取消’
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)
my. showToast(OBJECT)

confirm 確認(rèn)框。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
content String alert框的標(biāo)題
type function alert框的內(nèi)容
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

示例代碼:

  my.showToast({
  type: "success",
  content: "操作成功",
  duration: 3000,
  success: () => {
    my.alert({
      title: "toast 消失了",
    });
  },
});
my. hideToast()

隱藏弱提示。

示例代碼:

my.hideToast()
my. showLoading()

顯示加載提示。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
content String alert框的標(biāo)題
delay Integer 延遲顯示,單位 ms,默認(rèn) 0。如果在此時(shí)間之前調(diào)用了 my.hideLoading 則不會(huì)顯示
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

示例代碼:

my.showLoading({
  content: "加載中...",
  delay: 1000,
});
my. hideLoading()

隱藏加載提示。

示例代碼:

my.hideLoading();
my. datePicker(OBJECT)

打開(kāi)日期選擇列表。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
format String 返回的日期格式,yyyy-MM-dd(默認(rèn))HH:mm yyyy-MM-dd HH:mm yyyy-MM yyyy
currentDate String 初始選擇的日期時(shí)間,默認(rèn)當(dāng)前時(shí)間
startDate String 最小日期時(shí)間
endDate String 最大日期時(shí)間
success function 調(diào)用成功的回調(diào)函數(shù)
fail function 調(diào)用失敗的回調(diào)函數(shù)
complete function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

success返回參數(shù)說(shuō)明:

參數(shù) 類型 必填 說(shuō)明
date String 選擇的日期

示例代碼:

my.datePicker({
  format: "yyyy-MM-dd",
  currentDate: "2012-12-12",
  startDate: "2012-12-10",
  endDate: "2012-12-15",
  success: (res) => {
    my.alert({
    content: res.date,
  });
  },
});
my. hideKeyboard()

隱藏鍵盤(pán)。

示例代碼:

my. hideKeyboard();
SDK API +startWithAppKey:

傳入在平臺(tái)申請(qǐng)的 appKey,啟動(dòng) JSPatch SDK。同時(shí)會(huì)自動(dòng)執(zhí)行已下載到本地的 patch 腳本。建議在 -application:didFinishLaunchingWithOptions: 開(kāi)頭處調(diào)用。

+sync

與 OpenApplus 平臺(tái)后臺(tái)同步,詢問(wèn)是否有包更新,如果有更新會(huì)自動(dòng)下載并執(zhí)行。

!!注意 +startWithAppKey: 并不會(huì)詢問(wèn)后臺(tái)包更新,必須調(diào)用 +sync 方法。

每調(diào)用一次 +sync 就會(huì)請(qǐng)求一次后臺(tái),對(duì)于實(shí)時(shí)性要求不高的 APP,只需在 -application:didFinishLaunchingWithOptions: 處調(diào)用一次,這樣用戶會(huì)在啟動(dòng)時(shí)去同步 patch 信息。對(duì)于實(shí)時(shí)性要求高的 APP,可以在 -applicationDidBecomeActive: 處調(diào)用這個(gè)接口,這樣會(huì)在每次用戶喚醒 APP 時(shí)去同步一次后臺(tái),請(qǐng)求次數(shù)會(huì)增多,但有包更新時(shí)用戶會(huì)及時(shí)收到。

后臺(tái)使用 發(fā)布指南 應(yīng)用指南 收銀臺(tái)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/68335.html

相關(guān)文章

  • 寫(xiě)給 Android 開(kāi)發(fā)的程序布局指南,F(xiàn)lex 布局!

    摘要:不過(guò)在小程序中,這就不是我們需要考慮的了,微信已經(jīng)幫我們處理好了。而在新手階段,暫時(shí)只需要關(guān)注兩個(gè)參數(shù)指定一個(gè)塊級(jí)布局,它其內(nèi)的元素,總是起一個(gè)新行來(lái)顯示,而微信小程序的很多視圖容器組件,默認(rèn)的就是,例如等。 showImg(https://segmentfault.com/img/remote/1460000015285633?w=750&h=562); 一、序 Hi,大家好,我是承...

    Salamander 評(píng)論0 收藏0
  • Flex布局在程序的使用

    摘要:所以為了在小程序開(kāi)發(fā)中更方便地布局,有必要來(lái)詳細(xì)了解下布局在小程序的使用。本文將針對(duì)布局的各個(gè)屬性進(jìn)行介紹,并直接使用來(lái)編寫(xiě)例子,運(yùn)行環(huán)境是小程序的開(kāi)發(fā)者工具。在容器使用會(huì)導(dǎo)致布局失效。 一篇舊文,上手小程序時(shí)做的一些探索 Flex布局是一種十分靈活方便的布局方式,目前主流的現(xiàn)代瀏覽器基本都實(shí)現(xiàn)了對(duì)Flex布局的完全支持。而在微信小程序中,IOS端使用的渲染引擎WKWebView和安卓...

    FingerLiu 評(píng)論0 收藏0
  • Docker的大坑

    摘要:正在學(xué)習(xí),留著看看轉(zhuǎn)自的大坑小洼成為云計(jì)算領(lǐng)域的新寵兒已經(jīng)是不爭(zhēng)的事實(shí),作為高速發(fā)展的開(kāi)源項(xiàng)目,難免存在這樣或那樣的瑕疵。話不多說(shuō),一起來(lái)領(lǐng)略的大坑小洼。原因回歸至上文的第一個(gè)坑。如此一來(lái),只要內(nèi)部涉及到域名解析,則立即受到影響。 正在學(xué)習(xí)Docker,留著看看 轉(zhuǎn)自Docker的大坑小洼 Docker成為云計(jì)算領(lǐng)域的新寵兒已經(jīng)是不爭(zhēng)的事實(shí),作為高速發(fā)展的開(kāi)源項(xiàng)目,難免存在這樣或那樣...

    My_Oh_My 評(píng)論0 收藏0
  • Forrester企業(yè)級(jí)容器平臺(tái)權(quán)威排行出爐,初創(chuàng)Rancher緣何成為領(lǐng)導(dǎo)者?

    摘要:報(bào)告劃重點(diǎn)和領(lǐng)跑企業(yè)容器云市場(chǎng)在此次發(fā)布的企業(yè)級(jí)容器平臺(tái)的類似的魔力象限中,和是企業(yè)級(jí)容器管理平臺(tái)市場(chǎng)的卓越領(lǐng)導(dǎo)者。 showImg(https://segmentfault.com/img/remote/1460000016766848?w=1268&h=365); 全球著名的調(diào)研機(jī)構(gòu)Forrester Research近日發(fā)布了《The Forrester New Wave: En...

    Pocher 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<