2015-10-07 36 views
0

在使用pro guard java腳本界面方法後不能在release版本中運行,並且相同的代碼在開發模式下完美工作。 請幫助我錯了!在Android proguard中java腳本函數沒有調用webview按鈕點擊

代碼如下

public class Tab_Login extends Fragment 
{ 

    View rootView; 
    MyJavaScriptInterface myJavaScriptInterface; 
    static WebView myWebView; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 

     rootView = inflater.inflate(R.layout.login, container, false); 

     myWebView.loadUrl("file:///android_asset/Login.html"); 
     myJavaScriptInterface = new MyJavaScriptInterface(getActivity()); 
     myWebView.addJavascriptInterface(myJavaScriptInterface, "Android"); 

    } 

    public class MyJavaScriptInterface 
    { 
     Context mContext; 

     public MyJavaScriptInterface(Context c) 
     { 
      this.mContext = c; 
     } 

     @JavascriptInterface 
     public void loginBuy() 
     { 
      try 
      { 
       getActivity().runOnUiThread(new Runnable() 
       { 

        @Override 
        public void run() 
        { 
         // TODO Auto-generated method stub 
         Toast.makeText(mContext, "Method call", Toast.LENGTH_LONG).show(); 

        } 
       }); 

      } 
      catch (Exception e) 
      { 

      } 
     } 

    } 
} 

對於以下的線

// open this line 
    proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

// add these line 
-keep public class com.xyz.Tab_Login.MyJavaScriptInterface 

-keep public class * implements com.xyz.Tab_Login.MyJavaScriptInterface 

-keepclassmembers class com.xyz.Tab_Login.MyJavaScriptInterface { 
    <fields>; 
    <methods>; 
} 

-keepclassmembers class * { 
    @android.webkit.JavascriptInterface <methods>; 
} 

-keepattributes JavascriptInterface. 
+0

添加您progurad –

+0

@PankajKumar我有我的後兩碼請檢查 –

回答

0

搭配使用ProGuard代碼和檢查

myWebView.getSettings().setJavaScriptEnabled(true); 
+0

我已經應用此代碼但仍無法使用 –

+0

@Nirav你應該爲你的答案包括一個解釋,而不僅僅是這裏的代碼 –