2014年7月17日 星期四

推薦XCode外掛套件 - ColorSense-for-Xcode

ColorSense-for-Xcode 為一款XCode的顏色選擇套件,

只要打入[UIColor 後面就會跳出顏色面版讓你選擇

不用再自行輸入色彩代碼

如圖



安裝使用方式

只要下載官網專案檔

使用xcode開啟專案  compile 成功後

程式會自動在你的

~/Library/Application Support/Developer/Shared/Xcode/Plug-ins


加入外掛


目前官網說明在 OS X 10.8 with Xcode 4.4.1 and 4.5.的環境測試過


而我是在OS X 10.9.4 withXCode 5.1 and Xcode 6 Beta3 測試皆可以使用。

2014年6月12日 星期四

navigation pushViewController返回方式

若目前有

A(Root) → B → C → D

四個UIViewController,

每個都是使用navigation 的 push的做action,

今天你在B、C或D 要點擊按鈕回到A(Root)

在按鈕事件下


[self.navigationController popToRootViewController]

就可以回到A的Root。

返回某個指定的UIViewController 採用index定位的話,

就下


[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];

若要用class name去指定跳到的UIViewController


for (UIViewController *controller in self.navigationController.viewControllers) {
    if ([controller isKindOfClass:[你要跳到的UIViewController的class名稱  class]]) {
        [self.navigationController popToViewController:controller animated:YES];
    }
}

這樣就可以返回你想要返回的地方囉~

2014年5月28日 星期三

Apple開發者帳號 統編申請方式

若公司要購買開發者帳號,但需公司統編附在發票上的話,

申請的流程如下:

1.  先刷卡附款。

2.  附款成功後,獲得訂單編號。

3.  打電話與台灣客服聯繫 0800-020-021 ,選擇國語 按4

     告知需要開的統一編號,與發票需打的公司名字,

    只要把需求跟台灣客服說他們就會幫我們處理。


所以不用擔心網頁上沒有可以輸入統編的問題~


2014年4月24日 星期四

一條MOD網路線同時上網與看MOD

記錄一下 新租屋處個問題

房東只提供一條網路孔來接MOD

要上網時需把MOD的網路線拔至電腦連線

此時有一個方式,但你要先知道中華電信數據機的PPPoE帳密

準備一台Switch Hub

將MOD的線先接到hub,hub的孔再用另條網路線接上到MOD

hub其他孔就可以直接接電腦上網

但如果你要接到無線網路的話

此時你要再準備一台 無線路由器

從hub的孔接到 無線路由器的輸入

無線路由器的輸出接到電腦  用電腦先連到 無線路由器裡(看說明書連到192.168.0.1)

輸入帳密後  設定PPPoE方式 選動態IP

再輸入PPPoE的帳密  再設定無線網路連線 即可囉~


2014年4月23日 星期三

GoogleMap API error - [animateToCameraPosition... ]


今天要再用map時一直出現下面錯誤


[GMSMapView animateToCameraPosition:]: unrecognized selector sent to instance 

Code與官網一樣

最後發現

原來是少加了

-ObjC



這樣就可以順利發佈了

2014年3月19日 星期三

Android Webview javascript與Java 互動傳參數

重點是 要先設定

webview.setWebChromeClient(new WebChromeClient());
webview.addJavascriptInterface(new JavaScriptInterface(), "android");

於 HTML 的javascript加入

function executeFromObjCall(str)
{
    alert("execute from objective c call params:" + str);
            
}


然後在你的java檔加入

webview.loadUrl("javascript:executeFromObjCall('passValue');");


這樣就可以呼叫webview javascript檔

並由java傳值到javascript

 若要從javascript呼叫java的code的話

 我們先在javascript去呼叫某個function

如call callJavaFunction:


function callJavaFunction()
{                
   var str = window.android.callJavaMethod();
   alert(str);
}


在java code去新增

 public class JavaScriptInterface {
      public String callJavaMethod() {
           
       Log.i("info", "called from javascript execute in java");
       return "this is return params from java";
   }
}

JavaScriptInterface 是在上面有new JavaScriptInterface()的關係~ 

這樣就可以透過javascript呼叫java並回傳java的值到javascript了


2014年3月17日 星期一

UIWebview 的javascript與ios objective-c互動傳參數

UIWebview與Javascript互傳資料 可以參考此篇,

我覺得寫的還不錯

 我們先來說說 Javascript 去 呼叫Objective-c 的function

 在javascript網頁建立一個HTML檔,


<!DOCTYPE html>
<html>
    <head>
        <script>
            
        function callObjFunction()
        {
        var jsParam = "paramFromJs";
        window.location  = 'js-call:runObjMethod:';
            
        }
       </script>
    </head>

    <body>
        <button onclick="callObjFunction()">call obj function</button>
    </body>
</html>
然後在我們的xcode裡objective-c 建立被呼叫的function
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *urlString = request.URL.absoluteString;
    // 判斷點下的網址是否有js-call,更精確應該再比對切出來的字串是否有runObjMethod
    if( [urlString hasPrefix:@"js-call:"])
    {
        [self runObjMethod];
        
        return NO;
    }
    return YES;
    
}

-(void) runObjMethod
{
    NSLog(@"this is objective-c method");
}
p.s. 如果你要javascript帶傳參數到objective-c的話,就js-call:param1:param2 然後去parse出param1,param2的內容就可以~ 若要回傳參數的話(objective -> javascript) 我們先把原本的HTML的javascript 內新增
function jsFunction(str)
{
    alert("this is javascript alert! -> obj2 pass value to js show:"+str);
}

在objective-c內的runObjMethod function下加入
// 方法1
NSString *myval = @"my parameters from objective-c";
// javascript 的function 名稱 與obj變數組合成字串
    NSString  *jsMethod = [NSString stringWithFormat:@"%@%@%@", @"jsFunction('", myval, @"')"];

   [_myWebView stringByEvaluatingJavaScriptFromString:jsMethod];
// 或    
// 方法2
    [_myWebView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat:@"jsFunction('%@')",myval ]];
這樣就可以將objective-c的參數 傳到UIWebview裡面的網頁囉~